Mercurial > hg > graal-jvmci-8
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)); |