mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-24 08:24:33 +00:00
[SystemZ] Immediate compare-and-branch support
This patch adds support for the CIJ and CGIJ instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182846 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -229,6 +229,11 @@ TerminatorInfo SystemZLongBranch::describeTerminator(MachineInstr *MI) {
|
||||
// Relaxes to a CGR/BRCL sequence, which is 4 bytes longer.
|
||||
Terminator.ExtraRelaxSize = 4;
|
||||
break;
|
||||
case SystemZ::CIJ:
|
||||
case SystemZ::CGIJ:
|
||||
// Relaxes to a C(G)HI/BRCL sequence, which is 4 bytes longer.
|
||||
Terminator.ExtraRelaxSize = 4;
|
||||
break;
|
||||
default:
|
||||
llvm_unreachable("Unrecognized branch instruction");
|
||||
}
|
||||
@ -361,6 +366,12 @@ void SystemZLongBranch::relaxBranch(TerminatorInfo &Terminator) {
|
||||
case SystemZ::CGRJ:
|
||||
splitCompareBranch(Branch, SystemZ::CGR);
|
||||
break;
|
||||
case SystemZ::CIJ:
|
||||
splitCompareBranch(Branch, SystemZ::CHI);
|
||||
break;
|
||||
case SystemZ::CGIJ:
|
||||
splitCompareBranch(Branch, SystemZ::CGHI);
|
||||
break;
|
||||
default:
|
||||
llvm_unreachable("Unrecognized branch");
|
||||
}
|
||||
|
Reference in New Issue
Block a user