[PICA] Indexed add
This commit is contained in:
@@ -180,8 +180,7 @@ public:
|
||||
}
|
||||
|
||||
void setBufferIndex(u32 index) {
|
||||
if (index != 0) Helpers::panic("How many bits is the shader buffer index reg meant to be?");
|
||||
bufferIndex = (index >> 2) & 0xfff;
|
||||
bufferIndex = index & 0xfff;
|
||||
}
|
||||
|
||||
void setOpDescriptorIndex(u32 index) {
|
||||
|
||||
@@ -136,12 +136,12 @@ bool PICAShader::isCondTrue(u32 instruction) {
|
||||
|
||||
void PICAShader::add(u32 instruction) {
|
||||
const u32 operandDescriptor = operandDescriptors[instruction & 0x7f];
|
||||
const u32 src1 = (instruction >> 12) & 0x7f;
|
||||
u32 src1 = (instruction >> 12) & 0x7f;
|
||||
const u32 src2 = (instruction >> 7) & 0x1f; // src2 coming first because PICA moment
|
||||
const u32 idx = (instruction >> 19) & 3;
|
||||
const u32 dest = (instruction >> 21) & 0x1f;
|
||||
|
||||
if (idx) Helpers::panic("[PICA] ADD: idx != 0");
|
||||
src1 = getIndexedSource(src1, idx);
|
||||
vec4f srcVec1 = getSourceSwizzled<1>(src1, operandDescriptor);
|
||||
vec4f srcVec2 = getSourceSwizzled<2>(src2, operandDescriptor);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user