diff options
author | Björn Stenberg <bjorn@haxx.se> | 2002-04-21 22:25:17 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2002-04-21 22:25:17 +0000 |
commit | 679888feb49c8a2e453a0fe4aeb50b439903ec95 (patch) | |
tree | 392c2e2b43c968b9d2b08aafecd477d7f524cd0d /firmware/system.h | |
parent | f761de4c32e51b8ddcad7a4417e5a50bdf0a7d13 (diff) | |
download | rockbox-679888feb49c8a2e453a0fe4aeb50b439903ec95.tar.gz rockbox-679888feb49c8a2e453a0fe4aeb50b439903ec95.zip |
Replaced SWAB macros with register-safe versions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@165 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/system.h')
-rw-r--r-- | firmware/system.h | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/firmware/system.h b/firmware/system.h index 8ffc7547b7..342b60cba0 100644 --- a/firmware/system.h +++ b/firmware/system.h | |||
@@ -38,14 +38,20 @@ | |||
38 | #define SWAB32(x) (x) | 38 | #define SWAB32(x) (x) |
39 | #else | 39 | #else |
40 | #define SWAB16(x) \ | 40 | #define SWAB16(x) \ |
41 | (((x & 0x00ff) << 8) | \ | 41 | ({ \ |
42 | ((x & 0xff00) >> 8)) | 42 | unsigned short __x = x; \ |
43 | (((__x & 0x00ff) << 8) | \ | ||
44 | ((__x & 0xff00) >> 8)); \ | ||
45 | }) | ||
43 | 46 | ||
44 | #define SWAB32(x) \ | 47 | #define SWAB32(x) \ |
45 | (((x & 0x000000ff) << 24) | \ | 48 | ({ \ |
46 | ((x & 0x0000ff00) << 8) | \ | 49 | unsigned long __x = x; \ |
47 | ((x & 0x00ff0000) >> 8) | \ | 50 | (((__x & 0x000000ff) << 24) | \ |
48 | ((x & 0xff000000) >> 24)) | 51 | ((__x & 0x0000ff00) << 8) | \ |
52 | ((__x & 0x00ff0000) >> 8) | \ | ||
53 | ((__x & 0xff000000) >> 24)); \ | ||
54 | }) | ||
49 | #endif | 55 | #endif |
50 | 56 | ||
51 | #define nop \ | 57 | #define nop \ |