]>
Commit | Line | Data |
---|---|---|
3e80841e | 1 | /* HPPA linker stub instructions */ |
c986f2a6 | 2 | |
3e80841e JL |
3 | /* Maximum size of a single stub routine in bytes. */ |
4 | #define STUB_MAX_SIZE (sizeof(int) * 20) | |
5 | ||
6 | /* When realloc'ing, use this size ?!? FIXME, what are these? */ | |
7 | #define STUB_BUFFER_INCR (STUB_MAX_SIZE * 20) | |
8 | #define STUB_RELOC_INCR 20 | |
9 | ||
10 | /* These are the instructions which the linker may insert into the | |
11 | code stream when building final executables to handle out-of-range | |
12 | calls and argument relocations. */ | |
c986f2a6 KR |
13 | |
14 | #define ADDI_8_SP 0xb7de0010 /* addi 8,sp,sp */ | |
15 | #define STW_RP_M8SP 0x6bc23ff1 /* stw rp,-8(sp) */ | |
16 | #define STWS_ARG0_M8SP 0x0fda1291 /* stws arg0,-8(sp) */ | |
17 | #define STWS_ARG1_M8SP 0x0fd91291 /* stws arg1,-8(sp) */ | |
18 | #define STWS_ARG2_M8SP 0x0fd81291 /* stws arg2,-8(sp) */ | |
19 | #define STWS_ARG3_M8SP 0x0fd71291 /* stws arg3,-8(sp) */ | |
e2a422b8 KR |
20 | #define STWS_ARG0_M4SP 0x0fda1299 /* stws arg0,-4(sp) */ |
21 | #define STWS_ARG2_M4SP 0x0fd81299 /* stws arg2,-4(sp) */ | |
c986f2a6 KR |
22 | #define FSTWS_FARG0_M8SP 0x27d11204 /* fstws farg0,-8(sp) */ |
23 | #define FSTWS_FARG1_M8SP 0x27d11205 /* fstws farg1,-8(sp) */ | |
24 | #define FSTWS_FARG2_M8SP 0x27d11206 /* fstws farg2,-8(sp) */ | |
25 | #define FSTWS_FARG3_M8SP 0x27d11207 /* fstws farg3,-8(sp) */ | |
e2a422b8 KR |
26 | #define FSTDS_FARG1_M8SP 0x2fd11205 /* fstds farg1,-8(sp) */ |
27 | #define FSTDS_FARG3_M8SP 0x2fd11207 /* fstds farg3,-8(sp) */ | |
c986f2a6 KR |
28 | #define STWS_RET0_M8SP 0x0fda1291 /* stws arg0,-8(sp) */ |
29 | #define FSTWS_FRET0_M8SP 0x27d11204 /* fstws fret0,-8(sp) */ | |
c986f2a6 | 30 | #define LDWS_M8SP_ARG1 0x0fd11099 /* ldws -8(sp),arg1 */ |
c986f2a6 | 31 | #define LDWS_M8SP_ARG3 0x0fd11097 /* ldws -8(sp),arg3 */ |
e2a422b8 KR |
32 | #define LDWS_M4SP_ARG0 0x0fd9109a /* ldws -4(sp),arg0 */ |
33 | #define LDWS_M4SP_ARG1 0x0fd91099 /* ldws -4(sp),arg1 */ | |
34 | #define LDWS_M4SP_ARG2 0x0fd91098 /* ldws -4(sp),arg2 */ | |
35 | #define LDWS_M4SP_ARG3 0x0fd91097 /* ldws -4(sp),arg3 */ | |
c986f2a6 KR |
36 | #define FLDWS_M8SP_FARG0 0x27d11004 /* fldws -8(sp),farg0 */ |
37 | #define FLDWS_M8SP_FARG1 0x27d11005 /* fldws -8(sp),farg1 */ | |
38 | #define FLDWS_M8SP_FARG2 0x27d11006 /* fldws -8(sp),farg2 */ | |
39 | #define FLDWS_M8SP_FARG3 0x27d11007 /* fldws -8(sp),farg3 */ | |
e2a422b8 | 40 | #define FLDDS_M8SP_FARG1 0x2fd11005 /* fldds -8(sp),farg1 */ |
e2a422b8 KR |
41 | #define FLDDS_M8SP_FARG3 0x2fd11007 /* fldds -8(sp),farg3 */ |
42 | #define LDWS_M4SP_RET0 0x0fd9109c /* ldws -4(sp),ret0 */ | |
c986f2a6 | 43 | #define FLDWS_M8SP_FRET0 0x27d11004 /* fldws -8(sp),fret0 */ |
e2a422b8 KR |
44 | #define BLE_XXX_0_0 0xe4000000 /* ble 0(sr0,0) */ |
45 | #define BLE_N_XXX_0_0 0xe4000002 /* ble,n 0(sr0,0) */ | |
e2a422b8 | 46 | #define BLE_XXX_0_31 0xe7e00000 /* ble 0(sr0,r31) */ |
48eb5281 | 47 | #define BLE_N_XXX_0_31 0xe7e00002 /* ble,n 0(sr0,r31) */ |
e2a422b8 | 48 | #define BE_N_XXX_0_31 0xe3e00002 /* be,n 0(sr0,r31) */ |
3bca0336 | 49 | #define BE_XXX_0_31 0xe3e00000 /* be 0(sr0,r31) */ |
e2a422b8 | 50 | #define COPY_31_2 0x081f0242 /* copy r31,r2 */ |
3bca0336 KR |
51 | #define COPY_31_1 0x081f0241 /* copy r31,r1 */ |
52 | #define COPY_1_31 0x0801025f /* copy r1,r31 */ | |
48eb5281 | 53 | #define COPY_2_31 0x0802025f /* copy r2,r31 */ |
e2a422b8 | 54 | #define LDIL_XXX_31 0x23e00000 /* ldil 0,r31 */ |
3bca0336 | 55 | #define LDSID_31_1 0x03e010a1 /* ldsid (r31),r1 */ |
3bca0336 | 56 | #define MTSP_1_SR0 0x00011820 /* mtsp r1,sr0 */ |
3e80841e JL |
57 | #define ADDI_M4_31_RP 0xb7e207f9 /* addi -4,r31,rp */ |
58 | #define ADDI_M4_31_1 0xb7e107f9 /* addi -4,r31,r1 */ | |
59 | #define ADDI_M8_SP_SP 0xb7de07f1 /* addi -8,sp,sp */ | |
c986f2a6 | 60 | #define LDW_M8SP_RP 0x4bc23ff1 /* ldw -8(sp),rp */ |
3bca0336 | 61 | #define BV_N_0_RP 0xe840c002 /* bv,n 0(rp) */ |