Fix generating .m error in debug mode

1. Add machineType when return type is FLEX
2. Cmp ops should have the same op type

Signed-off-by: zhangyukun <zhangyukun8@huawei.com>
Change-Id: I3c0e417b8f9cd7f792e3ff909bf1fab8afabb238
This commit is contained in:
zhangyukun 2022-02-24 11:15:32 +08:00
parent aaf55fd94e
commit b44595f8cc
2 changed files with 4 additions and 3 deletions

View File

@ -474,9 +474,10 @@ GateRef CircuitBuilder::NewBytecodeCallGate(StubDescriptor *descriptor, GateRef
inputs.push_back(arg);
}
OpCode opcode(OpCode::BYTECODE_CALL);
MachineType machineType = GetCallMachineTypeFromStubMachineType(descriptor->GetReturnType());
GateType type = StubMachineType2GateType(descriptor->GetReturnType());
// 2 : 2 means extra two input gates (target glue)
return circuit_->NewGate(opcode, args.size() + 2, inputs, type);
return circuit_->NewGate(opcode, machineType, args.size() + 2, inputs, type);
}
GateRef CircuitBuilder::Alloca(int size)

View File

@ -1049,7 +1049,7 @@ DECLARE_ASM_HANDLER(SingleStepDebugging)
Label shouldReturn(env);
Label shouldContinue(env);
Branch(IntPtrEqual(*varPc, GetIntPtrConstant(0)), &shouldReturn, &shouldContinue);
Branch(IntPtrEqual(ChangeTaggedPointerToInt64(*varPc), GetInt64Constant(0)), &shouldReturn, &shouldContinue);
Bind(&shouldReturn);
{
Return();
@ -3948,7 +3948,7 @@ DECLARE_ASM_HANDLER(ExceptionHandler)
GateRef exception = Load(StubMachineType::TAGGED, glue, GetIntPtrConstant(0));
StubDescriptor *upFrame = GET_STUBDESCRIPTOR(UpFrame);
varPc = CallRuntime(upFrame, glue, GetInt64Constant(FAST_STUB_ID(UpFrame)), { glue, sp });
Branch(IntPtrEqual(*varPc, GetIntPtrConstant(0)), &pcIsInvalid, &pcNotInvalid);
Branch(IntPtrEqual(ChangeTaggedPointerToInt64(*varPc), GetInt64Constant(0)), &pcIsInvalid, &pcNotInvalid);
Bind(&pcIsInvalid);
{
Return();