mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 12:50:10 +01:00
radeon/llvm: Extend SI EXEC register support.
Add 32 bit lo and hi variants, and binary encodings. Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
This commit is contained in:
parent
2baaa5c7eb
commit
ab162f80c3
2 changed files with 7 additions and 2 deletions
|
|
@ -281,6 +281,9 @@ unsigned SIMCCodeEmitter::getEncodingBytes(const MCInst &MI) const {
|
|||
unsigned SIMCCodeEmitter::getRegBinaryCode(unsigned reg) const {
|
||||
switch (reg) {
|
||||
case AMDGPU::M0: return 124;
|
||||
case AMDGPU::EXEC: return 126;
|
||||
case AMDGPU::EXEC_LO: return 126;
|
||||
case AMDGPU::EXEC_HI: return 127;
|
||||
case AMDGPU::SREG_LIT_0: return 128;
|
||||
case AMDGPU::SI_LITERAL_CONSTANT: return 255;
|
||||
default: return getHWRegNum(reg);
|
||||
|
|
|
|||
|
|
@ -88,7 +88,9 @@ class SGPR_256 <bits<8> num, string name, list<Register> subregs> :
|
|||
SI_256 <name, subregs>;
|
||||
|
||||
def VCC : SIReg<"VCC">;
|
||||
def EXEC : SIReg<"EXEC">;
|
||||
def EXEC_LO : SIReg<"EXEC LO">;
|
||||
def EXEC_HI : SIReg<"EXEC HI">;
|
||||
def EXEC : SI_64<"EXEC", [EXEC_LO,EXEC_HI]>;
|
||||
def SCC : SIReg<"SCC">;
|
||||
def SREG_LIT_0 : SIReg <"S LIT 0">;
|
||||
def SI_LITERAL_CONSTANT : SIReg<"LITERAL CONSTANT">;
|
||||
|
|
@ -141,7 +143,7 @@ for (my $i = 0; $i < $VGPR_COUNT; $i++) {
|
|||
print <<STRING;
|
||||
|
||||
def SReg_32 : RegisterClass<"AMDGPU", [f32, i32], 32,
|
||||
(add (sequence "SGPR%u", 0, $SGPR_MAX_IDX), SREG_LIT_0, M0)
|
||||
(add (sequence "SGPR%u", 0, $SGPR_MAX_IDX), SREG_LIT_0, M0, EXEC_LO, EXEC_HI)
|
||||
>;
|
||||
|
||||
def VReg_32 : RegisterClass<"AMDGPU", [f32, i32], 32,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue