Mercurial > hg > truffle
changeset 19599:3ba5b1c55996
[SPARC] Configure caller saved register with FPU registers
author | Stefan Anzinger <stefan.anzinger@oracle.com> |
---|---|
date | Thu, 26 Feb 2015 11:26:34 +0100 |
parents | 15ef24874df7 |
children | b92530cb27df |
files | graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java |
diffstat | 1 files changed, 8 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java Wed Feb 25 19:13:16 2015 -0800 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java Thu Feb 26 11:26:34 2015 +0100 @@ -93,14 +93,14 @@ @SuppressWarnings("unused") private static Value[] createNativeABICallerSaveRegisters(HotSpotVMConfig config, RegisterConfig regConfig) { - List<Register> callerSaveRegisters = new ArrayList<>(); - Collections.addAll(callerSaveRegisters, regConfig.getCallerSaveRegisters()); - // TODO: Saving callee saved registers as well seems unneccessary, however as of now it does - // not work without; needs further investigation - Collections.addAll(callerSaveRegisters, regConfig.getCalleeSaveLayout().registers); - Value[] nativeABICallerSaveRegisters = new Value[callerSaveRegisters.size()]; - for (int i = 0; i < callerSaveRegisters.size(); i++) { - nativeABICallerSaveRegisters[i] = callerSaveRegisters.get(i).asValue(); + Set<Register> callerSavedRegisters = new HashSet<>(); + Collections.addAll(callerSavedRegisters, regConfig.getCalleeSaveLayout().registers); + Collections.addAll(callerSavedRegisters, SPARC.fpuRegisters); + Value[] nativeABICallerSaveRegisters = new Value[callerSavedRegisters.size()]; + int i = 0; + for (Register reg : callerSavedRegisters) { + nativeABICallerSaveRegisters[i] = reg.asValue(); + i++; } return nativeABICallerSaveRegisters; }