0
mirror of https://github.com/sampletext32/ParkanPlayground.git synced 2025-06-20 08:18:36 +03:00

Split FloatingPointHandler into specialized handlers for each instruction type and fixed FLDCW instruction formatting

This commit is contained in:
bird_egop
2025-04-12 23:33:40 +03:00
parent 82653f96f2
commit 3cc6d27e33
9 changed files with 260 additions and 18 deletions

View File

@ -70,14 +70,17 @@ public class LoadStoreInt32Handler : FloatingPointBaseHandler
if (mod != 3) // Memory operand
{
string operand = ModRMDecoder.DecodeModRM(mod, rm, false);
if (reg == 0 || reg == 2 || reg == 3) // fild, fist, fistp
{
instruction.Operands = $"dword ptr {operand}";
// Keep the dword ptr prefix for integer operations
instruction.Operands = operand;
}
else if (reg == 5 || reg == 7) // fld, fstp (extended precision)
{
instruction.Operands = $"tword ptr {operand}";
// Replace dword ptr with tword ptr for extended precision
operand = operand.Replace("dword ptr", "tword ptr");
instruction.Operands = operand;
}
else
{