7 |
#ifndef _KLIBC_ASMMACROS_H |
#ifndef _KLIBC_ASMMACROS_H |
8 |
#define _KLIBC_ASMMACROS_H |
#define _KLIBC_ASMMACROS_H |
9 |
|
|
10 |
/* An immediate in ARM can be any 8-bit value rotated by an even number of bits */ |
#if _KLIBC_ARM_USE_BX |
11 |
|
# define BX(x) bx x |
12 |
#define ARM_VALID_IMM(x) \ |
#else |
13 |
((((x) & ~0x000000ff) == 0) || \ |
# define BX(x) mov pc, x |
14 |
(((x) & ~0x000003fc) == 0) || \ |
#endif |
|
(((x) & ~0x00000ff0) == 0) || \ |
|
|
(((x) & ~0x00003fc0) == 0) || \ |
|
|
(((x) & ~0x0000ff00) == 0) || \ |
|
|
(((x) & ~0x0003fc00) == 0) || \ |
|
|
(((x) & ~0x000ff000) == 0) || \ |
|
|
(((x) & ~0x003fc000) == 0) || \ |
|
|
(((x) & ~0x00ff0000) == 0) || \ |
|
|
(((x) & ~0x03fc0000) == 0) || \ |
|
|
(((x) & ~0x0ff00000) == 0) || \ |
|
|
(((x) & ~0x3fc00000) == 0) || \ |
|
|
(((x) & ~0xff000000) == 0) || \ |
|
|
(((x) & ~0xfc000003) == 0) || \ |
|
|
(((x) & ~0xf000000f) == 0) || \ |
|
|
(((x) & ~0xc000003f) == 0)) |
|
15 |
|
|
16 |
#endif /* _KLIBC_ASMMACROS_H */ |
#endif /* _KLIBC_ASMMACROS_H */ |