diff options
author | Tom Stellard <[email protected]> | 2012-09-13 15:21:42 +0000 |
---|---|---|
committer | Tom Stellard <[email protected]> | 2012-09-21 19:30:58 +0000 |
commit | 438b1da7e552cff3f486944baff92ef6e3bb9608 (patch) | |
tree | 205d0c40b8089999cdc64db56b790bd5916560d7 /src/gallium/drivers/radeon | |
parent | 3882d7b5e434fb1e0e024b1cee2a885b3ad251bf (diff) |
radeon/llvm: Handle loads from the constants address space.
Reading from constant memory is not supported yet, so constant reads use
global memory.
Diffstat (limited to 'src/gallium/drivers/radeon')
-rw-r--r-- | src/gallium/drivers/radeon/MCTargetDesc/R600MCCodeEmitter.cpp | 1 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/R600Instructions.td | 9 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/MCTargetDesc/R600MCCodeEmitter.cpp b/src/gallium/drivers/radeon/MCTargetDesc/R600MCCodeEmitter.cpp index 8ad8213eaf6..847fcb62d4e 100644 --- a/src/gallium/drivers/radeon/MCTargetDesc/R600MCCodeEmitter.cpp +++ b/src/gallium/drivers/radeon/MCTargetDesc/R600MCCodeEmitter.cpp @@ -166,6 +166,7 @@ void R600MCCodeEmitter::EncodeInstruction(const MCInst &MI, raw_ostream &OS, Emit(inst, OS); break; } + case AMDGPU::CONSTANT_LOAD_eg: case AMDGPU::VTX_READ_PARAM_i32_eg: case AMDGPU::VTX_READ_PARAM_f32_eg: case AMDGPU::VTX_READ_GLOBAL_i8_eg: diff --git a/src/gallium/drivers/radeon/R600Instructions.td b/src/gallium/drivers/radeon/R600Instructions.td index ce7a17253ca..db4a3b80097 100644 --- a/src/gallium/drivers/radeon/R600Instructions.td +++ b/src/gallium/drivers/radeon/R600Instructions.td @@ -1161,6 +1161,15 @@ class VTX_READ_GLOBAL_128_eg <ValueType vt> : VTX_READ_128_eg <1, def VTX_READ_GLOBAL_v4i32_eg : VTX_READ_GLOBAL_128_eg<v4i32>; def VTX_READ_GLOBAL_v4f32_eg : VTX_READ_GLOBAL_128_eg<v4f32>; +//===----------------------------------------------------------------------===// +// Constant Loads +// XXX: We are currently storing all constants in the global address space. +//===----------------------------------------------------------------------===// + +def CONSTANT_LOAD_eg : VTX_READ_32_eg <1, + [(set (f32 R600_TReg32_X:$dst), (constant_load ADDRVTX_READ:$ptr))] +>; + } let Predicates = [isCayman] in { |