Mercurial > hg > graal-jvmci-8
comparison c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRegisterConfig.java @ 1455:43a93774d24f
Syncing changes with C1X.
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 12 Nov 2010 16:11:41 +0100 |
parents | 9196a2b32950 |
children | e4cd5d2de7e1 |
comparison
equal
deleted
inserted
replaced
1448:9196a2b32950 | 1455:43a93774d24f |
---|---|
64 } | 64 } |
65 | 65 |
66 private final CiRegister[] generalParameterRegisters; | 66 private final CiRegister[] generalParameterRegisters; |
67 private final CiRegister[] xmmParameterRegisters = {xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7}; | 67 private final CiRegister[] xmmParameterRegisters = {xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7}; |
68 private final CiRegister[] allParameterRegisters; | 68 private final CiRegister[] allParameterRegisters; |
69 | |
70 public static final CiRegisterSaveArea RSA; | |
71 static { | |
72 int offset = 0; | |
73 CiRegister[] rsaRegs = { | |
74 rax, rcx, rdx, rbx, rsp, rbp, rsi, rdi, | |
75 r8, r9, r10, r11, r12, r13, r14, r15, | |
76 xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, | |
77 xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15 | |
78 }; | |
79 Map<CiRegister, Integer> registerOffsets = new HashMap<CiRegister, Integer>(rsaRegs.length); | |
80 for (CiRegister reg : rsaRegs) { | |
81 registerOffsets.put(reg, offset); | |
82 offset += reg.isFpu() ? 16 : 8; | |
83 } | |
84 RSA = new CiRegisterSaveArea(offset, registerOffsets, 8); | |
85 } | |
69 | 86 |
70 public HotSpotRegisterConfig(HotSpotVMConfig config) { | 87 public HotSpotRegisterConfig(HotSpotVMConfig config) { |
71 if (config.windowsOs) { | 88 if (config.windowsOs) { |
72 generalParameterRegisters = new CiRegister[] {rdx, r8, r9, rdi, rsi, rcx}; | 89 generalParameterRegisters = new CiRegister[] {rdx, r8, r9, rdi, rsi, rcx}; |
73 } else { | 90 } else { |
183 @Override | 200 @Override |
184 public CiRegister getFrameRegister() { | 201 public CiRegister getFrameRegister() { |
185 return rsp; | 202 return rsp; |
186 } | 203 } |
187 | 204 |
205 public CiRegisterSaveArea getRSA() { | |
206 return RSA; | |
207 } | |
208 | |
188 @Override | 209 @Override |
189 public String toString() { | 210 public String toString() { |
190 String res = String.format( | 211 String res = String.format( |
191 "Allocatable: " + Arrays.toString(getAllocatableRegisters()) + "%n" + | 212 "Allocatable: " + Arrays.toString(getAllocatableRegisters()) + "%n" + |
192 "CallerSave: " + Arrays.toString(getCallerSaveRegisters()) + "%n" + | 213 "CallerSave: " + Arrays.toString(getCallerSaveRegisters()) + "%n" + |