00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifdef __ELF__
00030 #define LOCAL(X) .L_##X
00031 #define FUNC(X) .type X,@function
00032 #define HIDDEN_FUNC(X) FUNC(X); .hidden X
00033 #define HIDDEN_ALIAS(X,Y) ALIAS (X,Y); .hidden GLOBAL(X)
00034 #define ENDFUNC0(X) .Lfe_##X: .size X,.Lfe_##X-X
00035 #define ENDFUNC(X) ENDFUNC0(X)
00036 #else
00037 #define LOCAL(X) L_##X
00038 #define FUNC(X)
00039 #define HIDDEN_FUNC(X)
00040 #define HIDDEN_ALIAS(X,Y) ALIAS (X,Y)
00041 #define ENDFUNC(X)
00042 #endif
00043
00044 #define CONCAT(A,B) A##B
00045 #define GLOBAL0(U,X) CONCAT(U,__##X)
00046 #define GLOBAL(X) GLOBAL0(__USER_LABEL_PREFIX__,X)
00047
00048 #define ALIAS(X,Y) .global GLOBAL(X); .set GLOBAL(X),GLOBAL(Y)
00049
00050 #ifdef __SH2A__
00051 #undef FMOVD_WORKS
00052 #define FMOVD_WORKS
00053 #endif
00054
00055 #ifdef __LITTLE_ENDIAN__
00056 #define DR00 fr1
00057 #define DR01 fr0
00058 #define DR20 fr3
00059 #define DR21 fr2
00060 #define DR40 fr5
00061 #define DR41 fr4
00062 #else
00063 #define DR00 fr0
00064 #define DR01 fr1
00065 #define DR20 fr2
00066 #define DR21 fr3
00067 #define DR40 fr4
00068 #define DR41 fr5
00069 #endif
00070
00071 #ifdef __sh1__
00072 #define SL(branch, dest, in_slot, in_slot_arg2) \
00073 in_slot, in_slot_arg2; branch dest
00074 #define SL1(branch, dest, in_slot) \
00075 in_slot; branch dest
00076 #else
00077 #define SL(branch, dest, in_slot, in_slot_arg2) \
00078 branch##.s dest; in_slot, in_slot_arg2
00079 #define SL1(branch, dest, in_slot) \
00080 branch##/s dest; in_slot
00081 #endif