comparison graal/com.oracle.graal.lir.ptx/src/com/oracle/graal/lir/ptx/PTXMemOp.java @ 11699:03fe11f5f186

PTX Codegen: predicate register materialization and declaration; conditional branch generation; fix register declaration.
author S.Bharadwaj Yadavalli <bharadwaj.yadavalli@oracle.com>
date Tue, 17 Sep 2013 23:35:42 -0400
parents 91e5f927af63
children d8f291981d75
comparison
equal deleted inserted replaced
11698:4eec2ac671c2 11699:03fe11f5f186
32 import com.oracle.graal.lir.asm.*; 32 import com.oracle.graal.lir.asm.*;
33 33
34 public class PTXMemOp { 34 public class PTXMemOp {
35 35
36 // Load operation from .global state space 36 // Load operation from .global state space
37 @Opcode("LOAD") 37 @Opcode("LOAD_REGBASE_DISP")
38 public static class LoadOp extends PTXLIRInstruction { 38 public static class LoadOp extends PTXLIRInstruction {
39 39
40 private final Kind kind; 40 private final Kind kind;
41 @Def({REG}) protected AllocatableValue result; 41 @Def({REG}) protected AllocatableValue result;
42 @Use({COMPOSITE}) protected PTXAddressValue address; 42 @Use({COMPOSITE}) protected PTXAddressValue address;
130 } 130 }
131 } 131 }
132 } 132 }
133 133
134 // Load operation from .param state space 134 // Load operation from .param state space
135 @Opcode("LOAD") 135 @Opcode("LOAD_PARAM")
136 public static class LoadParamOp extends PTXLIRInstruction { 136 public static class LoadParamOp extends PTXLIRInstruction {
137 137
138 private final Kind kind; 138 private final Kind kind;
139 @Def({REG}) protected AllocatableValue result; 139 @Def({REG}) protected AllocatableValue result;
140 @Use({COMPOSITE}) protected PTXAddressValue address; 140 @Use({COMPOSITE}) protected PTXAddressValue address;
238 238
239 @Override 239 @Override
240 public void emitCode(TargetMethodAssembler tasm, PTXAssembler masm) { 240 public void emitCode(TargetMethodAssembler tasm, PTXAssembler masm) {
241 assert isRegister(input); 241 assert isRegister(input);
242 PTXAddress addr = address.toAddress(); 242 PTXAddress addr = address.toAddress();
243 // masm.st_global_return_value_s64(addr.getBase(), addr.getDisplacement(), asRegister(input));
244 243
245 switch (kind) { 244 switch (kind) {
246 case Byte: 245 case Byte:
247 case Short: 246 case Short:
248 masm.st_global_return_value_s8(addr.getBase(), addr.getDisplacement(), asRegister(input)); 247 masm.st_global_return_value_s8(addr.getBase(), addr.getDisplacement(), asRegister(input));