diff options
author | Craig Topper <craig.topper@intel.com> | 2018-10-31 21:53:24 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2018-10-31 21:53:24 +0000 |
commit | 6c3f1692c8e9455c831d3b2df103a8e86acf109e (patch) | |
tree | 08549b28d89ef28cd4525822c378830fa17a04af /llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp | |
parent | 7045c72b95350e9392d2c4923d990b8a91c1c654 (diff) | |
download | bcm5719-llvm-6c3f1692c8e9455c831d3b2df103a8e86acf109e.tar.gz bcm5719-llvm-6c3f1692c8e9455c831d3b2df103a8e86acf109e.zip |
Revert r345165 "[X86] Bring back the MOV64r0 pseudo instruction"
Google is reporting regressions on some benchmarks.
llvm-svn: 345785
Diffstat (limited to 'llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp b/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp index 20997ecc07d..14e4c455a08 100644 --- a/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp +++ b/llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp @@ -487,14 +487,20 @@ bool X86SpeculativeLoadHardeningPass::runOnMachineFunction( // Otherwise, just build the predicate state itself by zeroing a register // as we don't need any initial state. PS->InitialReg = MRI->createVirtualRegister(PS->RC); - auto ZeroI = BuildMI(Entry, EntryInsertPt, Loc, TII->get(X86::MOV64r0), - PS->InitialReg); + unsigned PredStateSubReg = MRI->createVirtualRegister(&X86::GR32RegClass); + auto ZeroI = BuildMI(Entry, EntryInsertPt, Loc, TII->get(X86::MOV32r0), + PredStateSubReg); ++NumInstsInserted; MachineOperand *ZeroEFLAGSDefOp = ZeroI->findRegisterDefOperand(X86::EFLAGS); assert(ZeroEFLAGSDefOp && ZeroEFLAGSDefOp->isImplicit() && "Must have an implicit def of EFLAGS!"); ZeroEFLAGSDefOp->setIsDead(true); + BuildMI(Entry, EntryInsertPt, Loc, TII->get(X86::SUBREG_TO_REG), + PS->InitialReg) + .addImm(0) + .addReg(PredStateSubReg) + .addImm(X86::sub_32bit); } // We're going to need to trace predicate state throughout the function's |