diff options
Diffstat (limited to 'lib/libsetjmp/sh/asm.h')
-rw-r--r-- | lib/libsetjmp/sh/asm.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/libsetjmp/sh/asm.h b/lib/libsetjmp/sh/asm.h new file mode 100644 index 0000000000..db30b149b5 --- /dev/null +++ b/lib/libsetjmp/sh/asm.h | |||
@@ -0,0 +1,42 @@ | |||
1 | #ifdef __STDC__ | ||
2 | # define _C_LABEL(x) _ ## x | ||
3 | #else | ||
4 | # define _C_LABEL(x) _/**/x | ||
5 | #endif | ||
6 | #define _ASM_LABEL(x) x | ||
7 | |||
8 | #if __SH5__ | ||
9 | # if __SH5__ == 32 && __SHMEDIA__ | ||
10 | # define TEXT .section .text..SHmedia32, "ax" | ||
11 | # else | ||
12 | # define TEXT .text | ||
13 | # endif | ||
14 | |||
15 | # define _ENTRY(name) \ | ||
16 | TEXT; .balign 8; .globl name; name: | ||
17 | #else | ||
18 | #define _ENTRY(name) \ | ||
19 | .text; .align 2; .globl name; name: | ||
20 | #endif /* __SH5__ */ | ||
21 | |||
22 | #define ENTRY(name) \ | ||
23 | _ENTRY(_C_LABEL(name)) | ||
24 | |||
25 | #if (defined (__sh2__) || defined (__SH2E__) || defined (__sh3__) || defined (__SH3E__) \ | ||
26 | || defined (__SH4_SINGLE__) || defined (__SH4__)) \ | ||
27 | || defined (__SH4_SINGLE_ONLY__) || defined (__SH5__) || defined (__SH2A__) | ||
28 | #define DELAYED_BRANCHES | ||
29 | #define SL(branch, dest, in_slot, in_slot_arg2) \ | ||
30 | branch##.s dest; in_slot, in_slot_arg2 | ||
31 | #else | ||
32 | #define SL(branch, dest, in_slot, in_slot_arg2) \ | ||
33 | in_slot, in_slot_arg2; branch dest | ||
34 | #endif | ||
35 | |||
36 | #ifdef __LITTLE_ENDIAN__ | ||
37 | #define SHHI shlld | ||
38 | #define SHLO shlrd | ||
39 | #else | ||
40 | #define SHHI shlrd | ||
41 | #define SHLO shlld | ||
42 | #endif | ||