mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
Change mips16 delay slot jumps to non delay slot forms by default.
We will make them delay slot forms if there is something that can be placed in the delay slot during a separate pass. Mips16 extended instructions cannot be placed in delay slots. llvm-svn: 166990
This commit is contained in:
parent
2ada2db2a2
commit
de0ea1027e
@ -126,7 +126,7 @@ bool Mips16InstrInfo::expandPostRAPseudo(MachineBasicBlock::iterator MI) const {
|
||||
default:
|
||||
return false;
|
||||
case Mips::RetRA16:
|
||||
ExpandRetRA16(MBB, MI, Mips::JrRa16);
|
||||
ExpandRetRA16(MBB, MI, Mips::JrcRa16);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -515,6 +515,13 @@ def JrRa16: FRR16_JALRC_RA_only_ins<0, 0, "jr", IIAlu> {
|
||||
let isBarrier=1;
|
||||
}
|
||||
|
||||
def JrcRa16: FRR16_JALRC_RA_only_ins<0, 0, "jrc", IIAlu> {
|
||||
let isBranch = 1;
|
||||
let isIndirectBranch = 1;
|
||||
let isTerminator=1;
|
||||
let isBarrier=1;
|
||||
}
|
||||
|
||||
def JrcRx16: FRR16_JALRC_ins<1, 1, 0, "jrc", IIAlu> {
|
||||
let isBranch = 1;
|
||||
let isIndirectBranch = 1;
|
||||
@ -1011,10 +1018,10 @@ def: Mips16Pat<
|
||||
|
||||
|
||||
// Jump and Link (Call)
|
||||
let isCall=1, hasDelaySlot=1 in
|
||||
let isCall=1, hasDelaySlot=0 in
|
||||
def JumpLinkReg16:
|
||||
FRR16_JALRC<0, 0, 0, (outs), (ins CPU16Regs:$rs),
|
||||
"jalr \t$rs", [(MipsJmpLink CPU16Regs:$rs)], IIBranch>;
|
||||
"jalrc \t$rs", [(MipsJmpLink CPU16Regs:$rs)], IIBranch>;
|
||||
|
||||
// Mips16 pseudos
|
||||
let isReturn=1, isTerminator=1, hasDelaySlot=1, isBarrier=1, hasCtrlDep=1,
|
||||
|
@ -24,10 +24,10 @@ entry:
|
||||
; C1: addiu ${{[0-9]+}}, %lo($.str)
|
||||
; C2: move $25, ${{[0-9]+}}
|
||||
; C1: move $gp, ${{[0-9]+}}
|
||||
; C1: jalr ${{[0-9]+}}
|
||||
; C1: jalrc ${{[0-9]+}}
|
||||
; SR: restore $ra, [[FS]]
|
||||
; PE: li $2, 0
|
||||
; PE: jr $ra
|
||||
; PE: jrc $ra
|
||||
|
||||
}
|
||||
|
||||
|
@ -8,6 +8,6 @@ entry:
|
||||
; 16: .set mips16 # @main
|
||||
|
||||
|
||||
; 16: jr $ra
|
||||
; 16: jrc $ra
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user