mirror of
https://github.com/openjdk/jdk.git
synced 2026-05-15 08:03:50 +00:00
8334706: [JVMCI] APX registers incorrectly exposed on AMD64
Reviewed-by: yzheng, never
This commit is contained in:
parent
08ace27da1
commit
dbf5a9a400
@ -83,11 +83,10 @@ public class AMD64 extends Architecture {
|
||||
public static final Register r30 = new Register(30, 30, "r30", CPU);
|
||||
public static final Register r31 = new Register(31, 31, "r31", CPU);
|
||||
|
||||
// The set of common CPU registers available on all x64 platforms.
|
||||
public static final Register[] cpuRegisters = {
|
||||
rax, rcx, rdx, rbx, rsp, rbp, rsi, rdi,
|
||||
r8, r9, r10, r11, r12, r13, r14, r15,
|
||||
r16, r17, r18, r19, r20, r21, r22, r23,
|
||||
r24, r25, r26, r27, r28, r29, r30, r31
|
||||
r8, r9, r10, r11, r12, r13, r14, r15
|
||||
};
|
||||
|
||||
public static final RegisterCategory XMM = new RegisterCategory("XMM");
|
||||
@ -162,8 +161,6 @@ public class AMD64 extends Architecture {
|
||||
public static final RegisterArray valueRegistersAVX512 = new RegisterArray(
|
||||
rax, rcx, rdx, rbx, rsp, rbp, rsi, rdi,
|
||||
r8, r9, r10, r11, r12, r13, r14, r15,
|
||||
r16, r17, r18, r19, r20, r21, r22, r23,
|
||||
r24, r25, r26, r27, r28, r29, r30, r31,
|
||||
xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7,
|
||||
xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15,
|
||||
xmm16, xmm17, xmm18, xmm19, xmm20, xmm21, xmm22, xmm23,
|
||||
@ -179,6 +176,8 @@ public class AMD64 extends Architecture {
|
||||
public static final RegisterArray allRegisters = new RegisterArray(
|
||||
rax, rcx, rdx, rbx, rsp, rbp, rsi, rdi,
|
||||
r8, r9, r10, r11, r12, r13, r14, r15,
|
||||
r16, r17, r18, r19, r20, r21, r22, r23,
|
||||
r24, r25, r26, r27, r28, r29, r30, r31,
|
||||
xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7,
|
||||
xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15,
|
||||
xmm16, xmm17, xmm18, xmm19, xmm20, xmm21, xmm22, xmm23,
|
||||
|
||||
@ -26,6 +26,7 @@ import java.nio.ByteOrder;
|
||||
import java.util.Set;
|
||||
|
||||
import jdk.vm.ci.code.Register.RegisterCategory;
|
||||
import jdk.vm.ci.common.JVMCIError;
|
||||
import jdk.vm.ci.meta.JavaKind;
|
||||
import jdk.vm.ci.meta.PlatformKind;
|
||||
|
||||
@ -81,6 +82,13 @@ public abstract class Architecture {
|
||||
protected Architecture(String name, PlatformKind wordKind, ByteOrder byteOrder, boolean unalignedMemoryAccess, RegisterArray registers, int implicitMemoryBarriers,
|
||||
int nativeCallDisplacementOffset,
|
||||
int returnAddressSize) {
|
||||
// registers is expected to mention all registers in order of their encoding.
|
||||
for (int i = 0; i < registers.size(); ++i) {
|
||||
if (registers.get(i).number != i) {
|
||||
Register reg = registers.get(i);
|
||||
throw new JVMCIError("%s: %d != %d", reg, reg.number, i);
|
||||
}
|
||||
}
|
||||
this.name = name;
|
||||
this.registers = registers;
|
||||
this.wordKind = wordKind;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user