changeset 22845:39cf11c62720

Fix bug in emitSaveAllRegisters.
author Roland Schatz <roland.schatz@oracle.com>
date Mon, 19 Oct 2015 17:37:24 +0200
parents 8c12a9c538d2
children ece452d7d500 657db06a6bbe
files graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java
diffstat 1 files changed, 1 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java	Mon Oct 19 16:32:20 2015 +0200
+++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java	Mon Oct 19 17:37:24 2015 +0200
@@ -359,9 +359,7 @@
     private AMD64SaveRegistersOp emitSaveAllRegisters(Register[] savedRegisters, boolean supportsRemove) {
         AllocatableValue[] savedRegisterLocations = new AllocatableValue[savedRegisters.length];
         for (int i = 0; i < savedRegisters.length; i++) {
-            PlatformKind kind = target().arch.getLargestStorableKind(savedRegisters[i].getRegisterCategory());
-            VirtualStackSlot spillSlot = getResult().getFrameMapBuilder().allocateSpillSlot(LIRKind.value(kind));
-            savedRegisterLocations[i] = spillSlot;
+            savedRegisterLocations[i] = allocateSaveRegisterLocation(savedRegisters[i]);
         }
         return emitSaveRegisters(savedRegisters, savedRegisterLocations, supportsRemove);
     }