mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-28 06:32:09 +00:00
x86: Remove the W64ALLOCA pseudo
This is just an alias for CALL64pcrel32, and we can just use that opcode with explicit defs in the MI. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227508 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4ac4c33f2d
commit
850420cd14
@ -415,7 +415,7 @@ void X86FrameLowering::getStackProbeFunction(const MachineFunction &MF,
|
||||
if (STI.is64Bit())
|
||||
CallOp = MF.getTarget().getCodeModel() == CodeModel::Large
|
||||
? X86::CALL64r
|
||||
: X86::W64ALLOCA;
|
||||
: X86::CALL64pcrel32;
|
||||
else
|
||||
CallOp = X86::CALLpcrel32;
|
||||
|
||||
|
@ -21070,7 +21070,7 @@ X86TargetLowering::EmitLoweredWinAlloca(MachineInstr *MI,
|
||||
// ___chkstk(Mingw64):
|
||||
// Clobbers R10, R11, RAX and EFLAGS.
|
||||
// Updates RSP.
|
||||
BuildMI(*BB, MI, DL, TII->get(X86::W64ALLOCA))
|
||||
BuildMI(*BB, MI, DL, TII->get(X86::CALL64pcrel32))
|
||||
.addExternalSymbol("___chkstk")
|
||||
.addReg(X86::RAX, RegState::Implicit)
|
||||
.addReg(X86::RSP, RegState::Implicit)
|
||||
@ -21080,7 +21080,7 @@ X86TargetLowering::EmitLoweredWinAlloca(MachineInstr *MI,
|
||||
} else {
|
||||
// __chkstk(MSVCRT): does not update stack pointer.
|
||||
// Clobbers R10, R11 and EFLAGS.
|
||||
BuildMI(*BB, MI, DL, TII->get(X86::W64ALLOCA))
|
||||
BuildMI(*BB, MI, DL, TII->get(X86::CALL64pcrel32))
|
||||
.addExternalSymbol("__chkstk")
|
||||
.addReg(X86::RAX, RegState::Implicit)
|
||||
.addReg(X86::EFLAGS, RegState::Define | RegState::Implicit);
|
||||
|
@ -278,18 +278,6 @@ let isCall = 1, Uses = [RSP], SchedRW = [WriteJump] in {
|
||||
"lcall{q}\t{*}$dst", [], IIC_CALL_FAR_MEM>;
|
||||
}
|
||||
|
||||
let isCall = 1, isCodeGenOnly = 1 in
|
||||
// __chkstk(MSVC): clobber R10, R11 and EFLAGS
|
||||
// ___chkstk_ms(Mingw64): clobber R10, R11 and EFLAGS
|
||||
// ___chkstk(Mingw64): clobber R10, R11, RAX and EFLAGS, and update RSP.
|
||||
let Defs = [RAX, R10, R11, RSP, EFLAGS],
|
||||
Uses = [RSP] in {
|
||||
def W64ALLOCA : Ii32PCRel<0xE8, RawFrm,
|
||||
(outs), (ins i64i32imm_pcrel:$dst),
|
||||
"call{q}\t$dst", [], IIC_CALL_RI>,
|
||||
Requires<[IsWin64]>, Sched<[WriteJump]>;
|
||||
}
|
||||
|
||||
let isCall = 1, isTerminator = 1, isReturn = 1, isBarrier = 1,
|
||||
isCodeGenOnly = 1, Uses = [RSP], usesCustomInserter = 1,
|
||||
SchedRW = [WriteJump] in {
|
||||
|
Loading…
x
Reference in New Issue
Block a user