Procházet zdrojové kódy

Add Linux-compatible rol32/ror32 functions. Amazingly, gcc will

optimise these down to the correct single "roll"/"rorl" instruction.
tags/v0.9.3
Michael Brown před 18 roky
rodič
revize
9cf5c4557d
1 změnil soubory, kde provedl 19 přidání a 0 odebrání
  1. 19
    0
      src/include/gpxe/bitops.h

+ 19
- 0
src/include/gpxe/bitops.h Zobrazit soubor

@@ -0,0 +1,19 @@
1
+#ifndef _GPXE_BITOPS_H
2
+#define _GPXE_BITOPS_H
3
+
4
+/** @file
5
+ *
6
+ * Bit operations
7
+ */
8
+
9
+#include <stdint.h>
10
+
11
+static inline uint32_t rol32 ( uint32_t data, unsigned int rotation ) {
12
+        return ( ( data << rotation ) | ( data >> ( 32 - rotation ) ) );
13
+}
14
+
15
+static inline uint32_t ror32 ( uint32_t data, unsigned int rotation ) {
16
+        return ( ( data >> rotation ) | ( data << ( 32 - rotation ) ) );
17
+}
18
+
19
+#endif /* _GPXE_BITOPS_H */

Načítá se…
Zrušit
Uložit