GPU: Implement the ISCADD shader instructions.

This commit is contained in:
Subv 2018-06-04 19:03:47 -05:00
parent 438a9b70cc
commit 23b1e6eded
2 changed files with 40 additions and 0 deletions

View file

@ -232,6 +232,22 @@ union Instruction {
}
} alu;
union {
BitField<39, 5, u64> shift_amount;
BitField<20, 19, u64> immediate_low;
BitField<56, 1, u64> immediate_high;
BitField<48, 1, u64> negate_b;
BitField<49, 1, u64> negate_a;
s32 GetImmediate() const {
u32 immediate = static_cast<u32>(immediate_low | (immediate_high << 19));
// Sign extend the 20-bit value.
u32 mask = 1U << (20 - 1);
return static_cast<s32>((immediate ^ mask) - mask);
}
} iscadd;
union {
BitField<48, 1, u64> negate_b;
BitField<49, 1, u64> negate_c;