Skip to content

Commit 5d5ec61

Browse files
authored
Merge pull request #22210 from gacholio/r13v2
Stop modifying r13 on LinuxPPC64
2 parents 6987049 + 875d547 commit 5d5ec61

File tree

2 files changed

+12
-18
lines changed

2 files changed

+12
-18
lines changed

runtime/oti/phelpers.m4

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ define({CALL_DIRECT},{
193193
})
194194

195195
J9CONST({TOC_SAVE_OFFSET},J9TR_cframe_currentTOC)
196-
define({SAVE_R13})
196+
define({PRESERVE_R13_IN_C})
197197
define({GPR_SAVE_OFFSET},{eval(J9TR_cframe_preservedGPRs+((($1)-13)*ALen))})
198198
define({GPR_SAVE_SLOT},{GPR_SAVE_OFFSET($1)(r1)})
199199
define({FPR_SAVE_OFFSET},{eval(J9TR_cframe_preservedFPRs+((($1)-14)*8))})
@@ -379,7 +379,7 @@ define({RESTORE_R2_FOR_ALL},{laddr r2,JIT_GPR_SAVE_SLOT(2)})
379379
define({SAVE_R29_FOR_ALL})
380380
define({RESTORE_R29_FOR_ALL})
381381

382-
define({SAVE_R13})
382+
define({PRESERVE_R13_IN_C})
383383
J9CONST({CR_SAVE_OFFSET},J9TR_cframe_preservedCR)
384384
define({GPR_SAVE_OFFSET},{eval(J9TR_cframe_preservedGPRs+((($1)-13)*ALen))})
385385
define({GPR_SAVE_SLOT},{GPR_SAVE_OFFSET($1)(r1)})
@@ -432,17 +432,13 @@ define({RESTORE_CR},{
432432

433433
ifdef({ASM_J9VM_ENV_DATA64},{
434434

435-
define({SAVE_R13},{staddr r13,JIT_GPR_SAVE_SLOT(13)})
436-
define({RESTORE_R13},{laddr r13,JIT_GPR_SAVE_SLOT(13)})
437-
define({SAVE_R15})
438-
define({RESTORE_R15})
435+
define({SAVE_R15_IF_NOT_VMTHREAD})
436+
define({RESTORE_R15_IF_NOT_VMTHREAD})
439437

440438
},{
441439

442-
define({SAVE_R13})
443-
define({RESTORE_R13})
444-
define({SAVE_R15},{staddr r15,JIT_GPR_SAVE_SLOT(15)})
445-
define({RESTORE_R15},{laddr r15,JIT_GPR_SAVE_SLOT(15)})
440+
define({SAVE_R15_IF_NOT_VMTHREAD},{staddr r15,JIT_GPR_SAVE_SLOT(15)})
441+
define({RESTORE_R15_IF_NOT_VMTHREAD},{laddr r15,JIT_GPR_SAVE_SLOT(15)})
446442

447443
})
448444

@@ -777,8 +773,7 @@ dnl No need to save/restore fp14-31 - the stack walker will never need to read
777773
dnl or modify them (no preserved FPRs in the JIT private linkage).
778774

779775
define({SAVE_C_NONVOLATILE_REGS},{
780-
SAVE_R13
781-
SAVE_R15
776+
SAVE_R15_IF_NOT_VMTHREAD
782777
staddr r16,JIT_GPR_SAVE_SLOT(16)
783778
staddr r17,JIT_GPR_SAVE_SLOT(17)
784779
staddr r18,JIT_GPR_SAVE_SLOT(18)
@@ -798,8 +793,7 @@ define({SAVE_C_NONVOLATILE_REGS},{
798793
})
799794

800795
define({RESTORE_C_NONVOLATILE_REGS},{
801-
RESTORE_R13
802-
RESTORE_R15
796+
RESTORE_R15_IF_NOT_VMTHREAD
803797
laddr r16,JIT_GPR_SAVE_SLOT(16)
804798
laddr r17,JIT_GPR_SAVE_SLOT(17)
805799
laddr r18,JIT_GPR_SAVE_SLOT(18)
@@ -824,7 +818,7 @@ define({SAVE_ALL_REGS},{
824818
})
825819

826820
define({SAVE_PRESERVED_REGS},{
827-
SAVE_R15
821+
SAVE_R15_IF_NOT_VMTHREAD
828822
staddr r16,JIT_GPR_SAVE_SLOT(16)
829823
staddr r17,JIT_GPR_SAVE_SLOT(17)
830824
staddr r18,JIT_GPR_SAVE_SLOT(18)
@@ -849,7 +843,7 @@ define({RESTORE_ALL_REGS},{
849843
})
850844

851845
define({RESTORE_PRESERVED_REGS},{
852-
RESTORE_R15
846+
RESTORE_R15_IF_NOT_VMTHREAD
853847
laddr r16,JIT_GPR_SAVE_SLOT(16)
854848
laddr r17,JIT_GPR_SAVE_SLOT(17)
855849
laddr r18,JIT_GPR_SAVE_SLOT(18)

runtime/vm/pcinterp.m4

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ ifdef({ASM_J9VM_ENV_LITTLE_ENDIAN},{
3737
staddr r0,LR_SAVE_OFFSET(r1)
3838
mfcr r0
3939
staddr r0,CR_SAVE_OFFSET(r1)
40-
ifdef({SAVE_R13},{
40+
ifdef({PRESERVE_R13_IN_C},{
4141
SAVE_GPR(13)
4242
})
4343
SAVE_GPR(14)
@@ -172,7 +172,7 @@ ifdef({ASM_J9VM_ENV_DATA64},{
172172
lxvd2x 63,0,r3
173173
.L_no_VR_restore:
174174
}) dnl ASM_J9VM_ENV_DATA64
175-
ifdef({SAVE_R13},{
175+
ifdef({PRESERVE_R13_IN_C},{
176176
RESTORE_GPR(13)
177177
})
178178
RESTORE_GPR(14)

0 commit comments

Comments
 (0)