Skip to content

Commit 2e24c0d

Browse files
authored
Merge pull request #16013 from BradleyWood/v0.35-revert-14632
(0.35.0) Revert "Preserve ymm/zmm registers on x"
2 parents 0e1ac1c + 0cfc379 commit 2e24c0d

File tree

4 files changed

+26
-285
lines changed

4 files changed

+26
-285
lines changed

runtime/codert_vm/xnathelp.m4

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
dnl Copyright (c) 2017, 2022 IBM Corp. and others
1+
dnl Copyright (c) 2017, 2021 IBM Corp. and others
22
dnl
33
dnl This program and the accompanying materials are made available under
44
dnl the terms of the Eclipse Public License 2.0 which accompanies this
@@ -1051,13 +1051,10 @@ START_PROC(jitReferenceArrayCopy)
10511051
mov PARM_REG(2),_rcx
10521052
mov PARM_REG(1),_rbp
10531053
call FASTCALL_SYMBOL(impl_jitReferenceArrayCopy,2)
1054-
dnl Save return value to check later.
1055-
dnl We don't check it now because restoring the register clobbers flags.
1056-
mov dword ptr J9TR_VMThread_floatTemp3[_rbp],eax
1054+
dnl set ZF if succeed
1055+
test _rax,_rax
10571056
RESTORE_C_VOLATILE_REGS
10581057
SWITCH_TO_JAVA_STACK
1059-
dnl Set ZF on success.
1060-
test dword ptr J9TR_VMThread_floatTemp3[_rbp], -1
10611058
push uword ptr J9TR_VMThread_jitReturnAddress[_rbp]
10621059
ret
10631060
END_PROC(jitReferenceArrayCopy)

runtime/jilgen/jilconsts.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,6 @@ writeConstants(OMRPortLibrary *OMRPORTLIB, IDATA fd)
393393
writeConstant(OMRPORTLIB, fd, "J9TR_cframe_machineBP", offsetof(J9CInterpreterStackFrame, machineBP)) |
394394
writeConstant(OMRPORTLIB, fd, "J9TR_cframe_jitGPRs", offsetof(J9CInterpreterStackFrame, jitGPRs)) |
395395
writeConstant(OMRPORTLIB, fd, "J9TR_cframe_jitFPRs", offsetof(J9CInterpreterStackFrame, jitFPRs)) |
396-
writeConstant(OMRPORTLIB, fd, "J9TR_cframe_maskRegisters", offsetof(J9CInterpreterStackFrame, maskRegisters)) |
397396
writeConstant(OMRPORTLIB, fd, "J9TR_cframe_rax", offsetof(J9CInterpreterStackFrame, jitGPRs.jitGPRs.named.rax)) |
398397
writeConstant(OMRPORTLIB, fd, "J9TR_cframe_rbx", offsetof(J9CInterpreterStackFrame, jitGPRs.jitGPRs.named.rbx)) |
399398
writeConstant(OMRPORTLIB, fd, "J9TR_cframe_rcx", offsetof(J9CInterpreterStackFrame, jitGPRs.jitGPRs.named.rcx)) |
@@ -756,7 +755,6 @@ writeConstants(OMRPortLibrary *OMRPORTLIB, IDATA fd)
756755
writeConstant(OMRPORTLIB, fd, "J9TR_ELSSize", sizeof(J9VMEntryLocalStorage)) |
757756
writeConstant(OMRPORTLIB, fd, "J9TR_J9_EXTENDED_RUNTIME_DEBUG_MODE", J9_EXTENDED_RUNTIME_DEBUG_MODE) |
758757
writeConstant(OMRPORTLIB, fd, "J9TR_J9_EXTENDED_RUNTIME_USE_VECTOR_REGISTERS", J9_EXTENDED_RUNTIME_USE_VECTOR_REGISTERS) |
759-
writeConstant(OMRPORTLIB, fd, "J9TR_J9_EXTENDED_RUNTIME_USE_EXTENDED_VECTOR_REGISTERS", J9_EXTENDED_RUNTIME_USE_EXTENDED_VECTOR_REGISTERS) |
760758
writeConstant(OMRPORTLIB, fd, "J9TR_J9_EXTENDED_RUNTIME2_COMPRESS_OBJECT_REFERENCES", J9_EXTENDED_RUNTIME2_COMPRESS_OBJECT_REFERENCES) |
761759
writeConstant(OMRPORTLIB, fd, "J9TR_J9_INLINE_JNI_MAX_ARG_COUNT", J9_INLINE_JNI_MAX_ARG_COUNT) |
762760

runtime/oti/j9nonbuilder.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6126,9 +6126,8 @@ typedef struct J9CInterpreterStackFrame {
61266126
*
61276127
* Stack must be 16-byte aligned.
61286128
*/
6129-
U_8 jitFPRs[6 * 64]; /* zmm0-5 512-bit OR xmm0-7 64-bit */
6129+
U_8 jitFPRs[6 * 16]; /* xmm0-5 128-bit OR xmm0-7 64-bit */
61306130
U_8 preservedFPRs[10 * 16]; /* xmm6-15 128-bit */
6131-
U_8 maskRegisters[8 * 8]; /* k0-k7 */
61326131
UDATA align[1];
61336132
/* r15,r14,r13,r12,rdi,rsi,rbx,rbp,return address
61346133
* RSP is 16-byte aligned at this point
@@ -6138,8 +6137,7 @@ typedef struct J9CInterpreterStackFrame {
61386137
*
61396138
* Stack must be 16-byte aligned.
61406139
*/
6141-
U_8 jitFPRs[32 * 64]; /* zmm0-31 512-bit OR xmm0-7 64-bit */
6142-
U_8 maskRegisters[8 * 8]; /* k0-k7 */
6140+
U_8 jitFPRs[16 * 16]; /* xmm0-15 128-bit OR xmm0-7 64-bit */
61436141
UDATA align[1];
61446142
/* r15,r14,r13,r12,rbx,rbp,return address
61456143
* RSP is 16-byte aligned at this point
@@ -6152,8 +6150,7 @@ typedef struct J9CInterpreterStackFrame {
61526150
*/
61536151
J9JITGPRSpillArea jitGPRs;
61546152
UDATA align1[2];
6155-
U_8 jitFPRs[8 * 64]; /* zmm0-7 512-bit */
6156-
U_8 maskRegisters[8 * 8]; /* k0-k7 */
6153+
U_8 jitFPRs[8 * 16]; /* xmm0-7 128-bit */
61576154
UDATA align2[1];
61586155
/* ebx,edi,esi
61596156
* ESP is forcibly 16-byte aligned at this point

0 commit comments

Comments
 (0)