-/* HPPA linker stub instructions */
+/* HPPA linker stub instructions */
-#define STUB_MAX_SIZE (sizeof(int) * 20) /* maximum size of a single stub routine */
-#define STUB_BUFFER_INCR (STUB_MAX_SIZE * 20) /* when realloc'ing, use this size */
-#define STUB_RELOC_INCR 20 /* when realloc'ing, use this size */
+/* These are the instructions which the linker may insert into the
+ code stream when building final executables to handle out-of-range
+ calls and argument relocations. */
-#define ADDI_8_SP 0xb7de0010 /* addi 8,sp,sp */
-#define STW_RP_M8SP 0x6bc23ff1 /* stw rp,-8(sp) */
-#define STWS_ARG0_M8SP 0x0fda1291 /* stws arg0,-8(sp) */
-#define STWS_ARG1_M8SP 0x0fd91291 /* stws arg1,-8(sp) */
-#define STWS_ARG2_M8SP 0x0fd81291 /* stws arg2,-8(sp) */
-#define STWS_ARG3_M8SP 0x0fd71291 /* stws arg3,-8(sp) */
-#define FSTWS_FARG0_M8SP 0x27d11204 /* fstws farg0,-8(sp) */
-#define FSTWS_FARG1_M8SP 0x27d11205 /* fstws farg1,-8(sp) */
-#define FSTWS_FARG2_M8SP 0x27d11206 /* fstws farg2,-8(sp) */
-#define FSTWS_FARG3_M8SP 0x27d11207 /* fstws farg3,-8(sp) */
-#define STWS_RET0_M8SP 0x0fda1291 /* stws arg0,-8(sp) */
-#define FSTWS_FRET0_M8SP 0x27d11204 /* fstws fret0,-8(sp) */
-#define LDWS_M8SP_ARG0 0x0fd1109a /* ldws -8(sp),arg0 */
-#define LDWS_M8SP_ARG1 0x0fd11099 /* ldws -8(sp),arg1 */
-#define LDWS_M8SP_ARG2 0x0fd11098 /* ldws -8(sp),arg2 */
-#define LDWS_M8SP_ARG3 0x0fd11097 /* ldws -8(sp),arg3 */
-#define FLDWS_M8SP_FARG0 0x27d11004 /* fldws -8(sp),farg0 */
-#define FLDWS_M8SP_FARG1 0x27d11005 /* fldws -8(sp),farg1 */
-#define FLDWS_M8SP_FARG2 0x27d11006 /* fldws -8(sp),farg2 */
-#define FLDWS_M8SP_FARG3 0x27d11007 /* fldws -8(sp),farg3 */
-#define LDWS_M8SP_RET0 0x0fd1109c /* ldws -8(sp),ret0 */
-#define FLDWS_M8SP_FRET0 0x27d11004 /* fldws -8(sp),fret0 */
-#define STWS_MA_ARG0_8SP 0x0fda12b0 /* stws,ma arg0,8(sp) */
-#define STWS_MA_ARG1_8SP 0x0fd912b0 /* stws,ma arg1,8(sp) */
-#define STWS_MA_ARG2_8SP 0x0fd812b0 /* stws,ma arg2,8(sp) */
-#define STWS_MA_ARG3_8SP 0x0fd712b0 /* stws,ma arg3,8(sp) */
-#define FSTWS_MA_FARG0_8SP 0x27d01224 /* fstws,ma farg0,8(sp) */
-#define FSTWS_MA_FARG1_8SP 0x27d01225 /* fstws,ma farg1,8(sp) */
-#define FSTWS_MA_FARG2_8SP 0x27d01226 /* fstws,ma farg2,8(sp) */
-#define FSTWS_MA_FARG3_8SP 0x27d01227 /* fstws,ma farg3,8(sp) */
-#define LDWS_MB_M8SP_ARG0 0x0fd130ba /* ldws,mb -8(sp),arg0 */
-#define LDWS_MB_M8SP_ARG1 0x0fd130b9 /* ldws,mb -8(sp),arg1 */
-#define LDWS_MB_M8SP_ARG2 0x0fd130b8 /* ldws,mb -8(sp),arg2 */
-#define LDWS_MB_M8SP_ARG3 0x0fd130b7 /* ldws,mb -8(sp),arg3 */
-#define FLDWS_MB_M8SP_FARG0 0x27d13024 /* fldws,mb -8(sp),farg0 */
-#define FLDWS_MB_M8SP_FARG1 0x27d13025 /* fldws,mb -8(sp),farg1 */
-#define FLDWS_MB_M8SP_FARG2 0x27d13026 /* fldws,mb -8(sp),farg2 */
-#define FLDWS_MB_M8SP_FARG3 0x27d13027 /* fldws,mb -8(sp),farg3 */
-#define BL_XXX_RP 0xe8400000 /* bl 0,rp */
-#define NOP 0x08000240 /* nop */
-#define SUBI_8_SP 0x97de0010 /* subi 8,sp,sp */
-#define LDW_M8SP_RP 0x4bc23ff1 /* ldw -8(sp),rp */
-#define BV_N_0RP 0xe840c002 /* bv,n 0(rp) */
+#define LDO_M4_R31_R31 0x37ff3ff9 /* ldo -4(%r31),%r31 */
+#define LDIL_R1 0x20200000 /* ldil XXX,%r1 */
+#define BE_SR4_R1 0xe0202000 /* be XXX(%sr4,%r1) */
+#define COPY_R31_R2 0x081f0242 /* copy %r31,%r2 */
+#define BLE_SR4_R0 0xe4002000 /* ble XXX(%sr4,%r0) */
+#define BLE_SR4_R1 0xe4202000 /* ble XXX(%sr4,%r1) */
+#define BV_N_0_R31 0xebe0c002 /* bv,n 0(%r31) */
+#define STW_R31_M8R30 0x6bdf3ff1 /* stw %r31,-8(%r30) */
+#define LDW_M8R30_R31 0x4bdf3ff1 /* ldw -8(%r30),%r31 */
+#define STW_ARG_M16R30 0x6bc03fe1 /* stw %argX,-16(%r30) */
+#define LDW_M16R30_ARG 0x4bc03fe1 /* ldw -12(%r30),%argX */
+#define STW_ARG_M12R30 0x6bc03fe9 /* stw %argX,-16(%r30) */
+#define LDW_M12R30_ARG 0x4bc03fe9 /* ldw -12(%r30),%argX */
+#define FSTW_FARG_M16R30 0x27c11200 /* fstws %fargX,-16(%r30) */
+#define FLDW_M16R30_FARG 0x27c11000 /* fldws -16(%r30),%fargX */
+#define FSTD_FARG_M16R30 0x2fc11200 /* fstds %fargX,-16(%r30) */
+#define FLDD_M16R30_FARG 0x2fc11000 /* fldds -16(%r30),%fargX */