RD DXIL Disassembly: change "load" and "store" output

load
  float _49 = *_48; // align 4

store
  *_30 = _27; // align 4
This commit is contained in:
Jake Turner
2024-04-23 13:33:10 +01:00
parent 248a2383ed
commit 007f4d46f4
@@ -2480,13 +2480,12 @@ void Program::MakeRDDisassemblyString()
}
break;
}
case Operation::LoadAtomic: commentStr += "atomic ";
case Operation::Load:
{
lineStr += "load ";
lineStr += "*";
if(inst.opFlags() & InstructionFlags::Volatile)
lineStr += "volatile ";
lineStr += inst.type->toString();
lineStr += ", ";
commentStr += "volatile ";
bool first = true;
for(const Value *s : inst.args)
{
@@ -2497,19 +2496,20 @@ void Program::MakeRDDisassemblyString()
first = false;
}
if(inst.align > 0)
lineStr += StringFormat::Fmt(", align %u", (1U << inst.align) >> 1);
commentStr += StringFormat::Fmt("align %u ", (1U << inst.align) >> 1);
break;
}
case Operation::StoreAtomic: commentStr += "atomic ";
case Operation::Store:
{
lineStr += "store ";
if(inst.opFlags() & InstructionFlags::Volatile)
lineStr += "volatile ";
lineStr += ArgToString(inst.args[1], false);
lineStr += ", ";
commentStr += "volatile ";
lineStr = "*";
lineStr += ArgToString(inst.args[0], false);
lineStr += " = ";
lineStr += ArgToString(inst.args[1], false);
if(inst.align > 0)
lineStr += StringFormat::Fmt(", align %u", (1U << inst.align) >> 1);
commentStr += StringFormat::Fmt("align %u ", (1U << inst.align) >> 1);
break;
}
case Operation::FOrdEqual:
@@ -2741,36 +2741,6 @@ void Program::MakeRDDisassemblyString()
}
break;
}
case Operation::LoadAtomic:
{
lineStr += "load atomic ";
if(inst.opFlags() & InstructionFlags::Volatile)
lineStr += "volatile ";
lineStr += inst.type->toString();
lineStr += ", ";
bool first = true;
for(const Value *s : inst.args)
{
if(!first)
lineStr += ", ";
lineStr += ArgToString(s, false);
first = false;
}
lineStr += StringFormat::Fmt(", align %u", (1U << inst.align) >> 1);
break;
}
case Operation::StoreAtomic:
{
lineStr += "store atomic ";
if(inst.opFlags() & InstructionFlags::Volatile)
lineStr += "volatile ";
lineStr += ArgToString(inst.args[1], false);
lineStr += ", ";
lineStr += ArgToString(inst.args[0], false);
lineStr += StringFormat::Fmt(", align %u", (1U << inst.align) >> 1);
break;
}
case Operation::CompareExchange:
{
lineStr += "cmpxchg ";