mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-20 19:07:01 +02:00
shader: remove redundant decoder and translator state
This commit is contained in:
@@ -47,7 +47,7 @@ void ApplyLiteral(Operand& operand, uint32_t literal) {
|
||||
|
||||
std::string RawWordsToString(const Instruction& inst) {
|
||||
std::string text;
|
||||
for (uint32_t i = 0; i < inst.raw_count; i++) {
|
||||
for (uint32_t i = 0; i < inst.word_count; i++) {
|
||||
if (i != 0) {
|
||||
text += " ";
|
||||
}
|
||||
@@ -234,8 +234,7 @@ void DecodeScalarSource(uint32_t code, uint32_t pc, Operand& operand) {
|
||||
if (code >= 240u && code <= 247u) {
|
||||
constexpr float values[] = {0.5f, -0.5f, 1.0f, -1.0f, 2.0f, -2.0f, 4.0f, -4.0f};
|
||||
operand.kind = OperandKind::FloatInlineConstant;
|
||||
operand.float_val = values[code - 240u];
|
||||
operand.value = FloatBits(operand.float_val);
|
||||
operand.value = FloatBits(values[code - 240u]);
|
||||
return;
|
||||
}
|
||||
if (code >= 256u && code <= 511u) {
|
||||
@@ -253,8 +252,7 @@ void DecodeScalarSource(uint32_t code, uint32_t pc, Operand& operand) {
|
||||
case 239u: operand.kind = OperandKind::PopsExitingWaveId; return;
|
||||
case 248u:
|
||||
operand.kind = OperandKind::FloatInlineConstant;
|
||||
operand.float_val = 0.15915494309189535f;
|
||||
operand.value = FloatBits(operand.float_val);
|
||||
operand.value = FloatBits(0.15915494309189535f);
|
||||
return;
|
||||
case 251u: operand.kind = OperandKind::VccZ; return;
|
||||
case 252u: operand.kind = OperandKind::ExecZ; return;
|
||||
@@ -307,8 +305,7 @@ void ReadLiteralOperands(std::span<const uint32_t> code, uint32_t word_index, In
|
||||
void SetRawWords(Instruction& inst, std::span<const uint32_t> code, uint32_t word_index,
|
||||
uint32_t word_count) {
|
||||
inst.word_count = word_count;
|
||||
inst.raw_count = word_count;
|
||||
for (uint32_t i = 0; i < inst.raw_count; i++) {
|
||||
for (uint32_t i = 0; i < inst.word_count; i++) {
|
||||
inst.raw[i] = code[word_index + i];
|
||||
}
|
||||
}
|
||||
@@ -415,7 +412,9 @@ std::string OperandToString(const Operand& operand) {
|
||||
case OperandKind::IntegerInlineConstant:
|
||||
text = fmt::format("{}", operand.signed_val);
|
||||
break;
|
||||
case OperandKind::FloatInlineConstant: text = fmt::format("{:f}", operand.float_val); break;
|
||||
case OperandKind::FloatInlineConstant:
|
||||
text = fmt::format("{:f}", std::bit_cast<float>(operand.value));
|
||||
break;
|
||||
case OperandKind::Sgpr: text = fmt::format("s{}", operand.reg); break;
|
||||
case OperandKind::Vgpr: text = fmt::format("v{}", operand.reg); break;
|
||||
case OperandKind::VccLo: text = "vcc_lo"; break;
|
||||
|
||||
Reference in New Issue
Block a user