backend\A64\a32_emit_a64.cpp: Fix Coproc* after rebase
This commit is contained in:
parent
5bf010cc62
commit
fe63ef0486
@ -1048,15 +1048,15 @@ void A32EmitA64::EmitA32CoprocSendOneWord(A32EmitContext& ctx, IR::Inst* inst) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto action = coproc->CompileSendOneWord(two, opc1, CRn, CRm, opc2);
|
auto action = coproc->CompileSendOneWord(two, opc1, CRn, CRm, opc2);
|
||||||
switch (action.which()) {
|
switch (action.index()) {
|
||||||
case 0:
|
case 0:
|
||||||
EmitCoprocessorException();
|
EmitCoprocessorException();
|
||||||
return;
|
return;
|
||||||
case 1:
|
case 1:
|
||||||
CallCoprocCallback(code, ctx.reg_alloc, jit_interface, boost::get<A32::Coprocessor::Callback>(action), nullptr, args[1]);
|
CallCoprocCallback(code, ctx.reg_alloc, jit_interface, std::get<A32::Coprocessor::Callback>(action), nullptr, args[1]);
|
||||||
return;
|
return;
|
||||||
case 2: {
|
case 2: {
|
||||||
u32* destination_ptr = boost::get<u32*>(action);
|
u32* destination_ptr = std::get<u32*>(action);
|
||||||
|
|
||||||
ARM64Reg reg_word = DecodeReg(ctx.reg_alloc.UseGpr(args[1]));
|
ARM64Reg reg_word = DecodeReg(ctx.reg_alloc.UseGpr(args[1]));
|
||||||
ARM64Reg reg_destination_addr = ctx.reg_alloc.ScratchGpr();
|
ARM64Reg reg_destination_addr = ctx.reg_alloc.ScratchGpr();
|
||||||
@ -1087,15 +1087,15 @@ void A32EmitA64::EmitA32CoprocSendTwoWords(A32EmitContext& ctx, IR::Inst* inst)
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto action = coproc->CompileSendTwoWords(two, opc, CRm);
|
auto action = coproc->CompileSendTwoWords(two, opc, CRm);
|
||||||
switch (action.which()) {
|
switch (action.index()) {
|
||||||
case 0:
|
case 0:
|
||||||
EmitCoprocessorException();
|
EmitCoprocessorException();
|
||||||
return;
|
return;
|
||||||
case 1:
|
case 1:
|
||||||
CallCoprocCallback(code, ctx.reg_alloc, jit_interface, boost::get<A32::Coprocessor::Callback>(action), nullptr, args[1], args[2]);
|
CallCoprocCallback(code, ctx.reg_alloc, jit_interface, std::get<A32::Coprocessor::Callback>(action), nullptr, args[1], args[2]);
|
||||||
return;
|
return;
|
||||||
case 2: {
|
case 2: {
|
||||||
auto destination_ptrs = boost::get<std::array<u32*, 2>>(action);
|
auto destination_ptrs = std::get<std::array<u32*, 2>>(action);
|
||||||
|
|
||||||
ARM64Reg reg_word1 = DecodeReg(ctx.reg_alloc.UseGpr(args[1]));
|
ARM64Reg reg_word1 = DecodeReg(ctx.reg_alloc.UseGpr(args[1]));
|
||||||
ARM64Reg reg_word2 = DecodeReg(ctx.reg_alloc.UseGpr(args[2]));
|
ARM64Reg reg_word2 = DecodeReg(ctx.reg_alloc.UseGpr(args[2]));
|
||||||
@ -1130,15 +1130,15 @@ void A32EmitA64::EmitA32CoprocGetOneWord(A32EmitContext& ctx, IR::Inst* inst) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto action = coproc->CompileGetOneWord(two, opc1, CRn, CRm, opc2);
|
auto action = coproc->CompileGetOneWord(two, opc1, CRn, CRm, opc2);
|
||||||
switch (action.which()) {
|
switch (action.index()) {
|
||||||
case 0:
|
case 0:
|
||||||
EmitCoprocessorException();
|
EmitCoprocessorException();
|
||||||
return;
|
return;
|
||||||
case 1:
|
case 1:
|
||||||
CallCoprocCallback(code, ctx.reg_alloc, jit_interface, boost::get<A32::Coprocessor::Callback>(action), inst);
|
CallCoprocCallback(code, ctx.reg_alloc, jit_interface, std::get<A32::Coprocessor::Callback>(action), inst);
|
||||||
return;
|
return;
|
||||||
case 2: {
|
case 2: {
|
||||||
u32* source_ptr = boost::get<u32*>(action);
|
u32* source_ptr = std::get<u32*>(action);
|
||||||
|
|
||||||
ARM64Reg reg_word = DecodeReg(ctx.reg_alloc.ScratchGpr());
|
ARM64Reg reg_word = DecodeReg(ctx.reg_alloc.ScratchGpr());
|
||||||
ARM64Reg reg_source_addr = ctx.reg_alloc.ScratchGpr();
|
ARM64Reg reg_source_addr = ctx.reg_alloc.ScratchGpr();
|
||||||
@ -1170,15 +1170,15 @@ void A32EmitA64::EmitA32CoprocGetTwoWords(A32EmitContext& ctx, IR::Inst* inst) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto action = coproc->CompileGetTwoWords(two, opc, CRm);
|
auto action = coproc->CompileGetTwoWords(two, opc, CRm);
|
||||||
switch (action.which()) {
|
switch (action.index()) {
|
||||||
case 0:
|
case 0:
|
||||||
EmitCoprocessorException();
|
EmitCoprocessorException();
|
||||||
return;
|
return;
|
||||||
case 1:
|
case 1:
|
||||||
CallCoprocCallback(code, ctx.reg_alloc, jit_interface, boost::get<A32::Coprocessor::Callback>(action), inst);
|
CallCoprocCallback(code, ctx.reg_alloc, jit_interface, std::get<A32::Coprocessor::Callback>(action), inst);
|
||||||
return;
|
return;
|
||||||
case 2: {
|
case 2: {
|
||||||
auto source_ptrs = boost::get<std::array<u32*, 2>>(action);
|
auto source_ptrs = std::get<std::array<u32*, 2>>(action);
|
||||||
|
|
||||||
ARM64Reg reg_result = ctx.reg_alloc.ScratchGpr();
|
ARM64Reg reg_result = ctx.reg_alloc.ScratchGpr();
|
||||||
ARM64Reg reg_destination_addr = ctx.reg_alloc.ScratchGpr();
|
ARM64Reg reg_destination_addr = ctx.reg_alloc.ScratchGpr();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user