mirror of
https://github.com/sampletext32/ParkanPlayground.git
synced 2025-06-20 08:18:36 +03:00
Fixed floating point handlers for qword operands and added missing FCOM ST(0), ST(i) handler
This commit is contained in:
@ -51,8 +51,8 @@ public class FaddFloat64Handler : InstructionHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
// Read the ModR/M byte using the specialized FPU method
|
||||
var (mod, reg, fpuRm, rawOperand) = ModRMDecoder.ReadModRMFpu();
|
||||
// Read the ModR/M byte using the specialized FPU method for 64-bit operands
|
||||
var (mod, reg, fpuRm, rawOperand) = ModRMDecoder.ReadModRMFpu64();
|
||||
|
||||
// Verify reg field is 0 (FADD)
|
||||
if (reg != 0)
|
||||
|
@ -52,7 +52,7 @@ public class FdivFloat64Handler : InstructionHandler
|
||||
}
|
||||
|
||||
// Read the ModR/M byte using the specialized FPU method
|
||||
var (mod, reg, fpuRm, rawOperand) = ModRMDecoder.ReadModRMFpu();
|
||||
var (mod, reg, fpuRm, rawOperand) = ModRMDecoder.ReadModRMFpu64();
|
||||
|
||||
// Set the instruction type
|
||||
instruction.Type = InstructionType.Fdiv;
|
||||
|
@ -52,7 +52,7 @@ public class FdivrFloat64Handler : InstructionHandler
|
||||
}
|
||||
|
||||
// Read the ModR/M byte using the specialized FPU method
|
||||
var (mod, reg, fpuRm, rawOperand) = ModRMDecoder.ReadModRMFpu();
|
||||
var (mod, reg, fpuRm, rawOperand) = ModRMDecoder.ReadModRMFpu64();
|
||||
|
||||
// Set the instruction type
|
||||
instruction.Type = InstructionType.Fdivr;
|
||||
|
@ -51,8 +51,8 @@ public class FmulFloat64Handler : InstructionHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
// Read the ModR/M byte using the specialized FPU method
|
||||
var (mod, reg, fpuRm, rawOperand) = ModRMDecoder.ReadModRMFpu();
|
||||
// Read the ModR/M byte using the specialized FPU method for 64-bit operands
|
||||
var (mod, reg, fpuRm, rawOperand) = ModRMDecoder.ReadModRMFpu64();
|
||||
|
||||
// Set the instruction type
|
||||
instruction.Type = InstructionType.Fmul;
|
||||
|
@ -52,7 +52,7 @@ public class FsubFloat64Handler : InstructionHandler
|
||||
}
|
||||
|
||||
// Read the ModR/M byte using the specialized FPU method
|
||||
var (mod, reg, fpuRm, rawOperand) = ModRMDecoder.ReadModRMFpu();
|
||||
var (mod, reg, fpuRm, rawOperand) = ModRMDecoder.ReadModRMFpu64();
|
||||
|
||||
// Set the instruction type
|
||||
instruction.Type = InstructionType.Fsub;
|
||||
|
@ -52,7 +52,7 @@ public class FsubrFloat64Handler : InstructionHandler
|
||||
}
|
||||
|
||||
// Read the ModR/M byte using the specialized FPU method
|
||||
var (mod, reg, fpuRm, rawOperand) = ModRMDecoder.ReadModRMFpu();
|
||||
var (mod, reg, fpuRm, rawOperand) = ModRMDecoder.ReadModRMFpu64();
|
||||
|
||||
// Set the instruction type
|
||||
instruction.Type = InstructionType.Fsubr;
|
||||
|
Reference in New Issue
Block a user