- 修复 EvalStackCalculator不支持Conv_R_Un指令的bug

- 修复未不支持float与double进行二元计算的bug
dev
walon 2025-06-22 12:03:34 +08:00
parent 73915db7ca
commit 38ebe11d7d
1 changed files with 4 additions and 3 deletions

View File

@ -233,6 +233,7 @@ namespace Obfuz.Emit
switch (op2) switch (op2)
{ {
case EvalDataType.Float: return EvalDataType.Float; case EvalDataType.Float: return EvalDataType.Float;
case EvalDataType.Double: return EvalDataType.Double;
default: throw new Exception($"Unsupported operand type: {op2} for {op1} in binary operation."); default: throw new Exception($"Unsupported operand type: {op2} for {op1} in binary operation.");
} }
} }
@ -240,6 +241,7 @@ namespace Obfuz.Emit
{ {
switch (op2) switch (op2)
{ {
case EvalDataType.Float:
case EvalDataType.Double: return EvalDataType.Double; case EvalDataType.Double: return EvalDataType.Double;
default: throw new Exception($"Unsupported operand type: {op2} for {op1} in binary operation."); default: throw new Exception($"Unsupported operand type: {op2} for {op1} in binary operation.");
} }
@ -658,9 +660,8 @@ namespace Obfuz.Emit
} }
case Code.Conv_R_Un: case Code.Conv_R_Un:
{ {
//PushStack(newDataTack, EvalDataType.Double); PushStack(newPushedDatas, EvalDataType.Double);
//break; break;
throw new Exception($"unsupported opcode:{inst}");
} }
case Code.Cpobj: case Code.Cpobj:
case Code.Initobj: case Code.Initobj: