comparison graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLIRGenerator.java @ 19156:247419385312

[SPARC] do not create superfluous copies of variables.
author Josef Eisl <josef.eisl@jku.at>
date Thu, 05 Feb 2015 10:34:13 +0100
parents cd49455040c1
children 3a2fce66fda0
comparison
equal deleted inserted replaced
19155:ac9ad302e12f 19156:247419385312
170 170
171 private void moveValueToThread(Value v, int offset) { 171 private void moveValueToThread(Value v, int offset) {
172 LIRKind wordKind = LIRKind.value(getProviders().getCodeCache().getTarget().wordKind); 172 LIRKind wordKind = LIRKind.value(getProviders().getCodeCache().getTarget().wordKind);
173 RegisterValue thread = getProviders().getRegisters().getThreadRegister().asValue(wordKind); 173 RegisterValue thread = getProviders().getRegisters().getThreadRegister().asValue(wordKind);
174 SPARCAddressValue pendingDeoptAddress = new SPARCAddressValue(wordKind, thread, offset); 174 SPARCAddressValue pendingDeoptAddress = new SPARCAddressValue(wordKind, thread, offset);
175 append(new StoreOp(v.getKind(), pendingDeoptAddress, emitMove(v), null)); 175 append(new StoreOp(v.getKind(), pendingDeoptAddress, load(v), null));
176 } 176 }
177 177
178 @Override 178 @Override
179 public void emitDeoptimize(Value actionAndReason, Value speculation, LIRFrameState state) { 179 public void emitDeoptimize(Value actionAndReason, Value speculation, LIRFrameState state) {
180 moveDeoptValuesToThread(actionAndReason, speculation); 180 moveDeoptValuesToThread(actionAndReason, speculation);