diff options
author | Alkis Evlogimenos <alkis@evlogimenos.com> | 2004-02-27 09:28:43 +0000 |
---|---|---|
committer | Alkis Evlogimenos <alkis@evlogimenos.com> | 2004-02-27 09:28:43 +0000 |
commit | 3537404299f1472b500ca81fb472978ad47f7b3b (patch) | |
tree | e8d0feba4d862d762ead0abe2e25a5fd752dd6d6 /llvm/lib/Target/X86/X86RegisterInfo.cpp | |
parent | f020dfb43c0fbcd4a897f50c5772c8c8c09e7271 (diff) | |
download | bcm5719-llvm-3537404299f1472b500ca81fb472978ad47f7b3b.tar.gz bcm5719-llvm-3537404299f1472b500ca81fb472978ad47f7b3b.zip |
Add memory operand folding support for SHL, SHR and SAR, SHLD instructions.
llvm-svn: 11903
Diffstat (limited to 'llvm/lib/Target/X86/X86RegisterInfo.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86RegisterInfo.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86RegisterInfo.cpp b/llvm/lib/Target/X86/X86RegisterInfo.cpp index 6fd2644f767..cb26abf8ac8 100644 --- a/llvm/lib/Target/X86/X86RegisterInfo.cpp +++ b/llvm/lib/Target/X86/X86RegisterInfo.cpp @@ -197,6 +197,24 @@ bool X86RegisterInfo::foldMemoryOperand(MachineBasicBlock::iterator &MI, case X86::XORri8: NI = MakeMIInst(X86::XORmi8 , FrameIndex, MI); break; case X86::XORri16: NI = MakeMIInst(X86::XORmi16, FrameIndex, MI); break; case X86::XORri32: NI = MakeMIInst(X86::XORmi32, FrameIndex, MI); break; + case X86::SHLrCL8: NI = MakeMInst( X86::SHLmCL8 ,FrameIndex, MI); break; + case X86::SHLrCL16:NI = MakeMInst( X86::SHLmCL16,FrameIndex, MI); break; + case X86::SHLrCL32:NI = MakeMInst( X86::SHLmCL32,FrameIndex, MI); break; + case X86::SHLri8: NI = MakeMIInst(X86::SHLmi8 , FrameIndex, MI); break; + case X86::SHLri16: NI = MakeMIInst(X86::SHLmi16, FrameIndex, MI); break; + case X86::SHLri32: NI = MakeMIInst(X86::SHLmi32, FrameIndex, MI); break; + case X86::SHRrCL8: NI = MakeMInst( X86::SHRmCL8 ,FrameIndex, MI); break; + case X86::SHRrCL16:NI = MakeMInst( X86::SHRmCL16,FrameIndex, MI); break; + case X86::SHRrCL32:NI = MakeMInst( X86::SHRmCL32,FrameIndex, MI); break; + case X86::SHRri8: NI = MakeMIInst(X86::SHRmi8 , FrameIndex, MI); break; + case X86::SHRri16: NI = MakeMIInst(X86::SHRmi16, FrameIndex, MI); break; + case X86::SHRri32: NI = MakeMIInst(X86::SHRmi32, FrameIndex, MI); break; + case X86::SARrCL8: NI = MakeMInst( X86::SARmCL8 ,FrameIndex, MI); break; + case X86::SARrCL16:NI = MakeMInst( X86::SARmCL16,FrameIndex, MI); break; + case X86::SARrCL32:NI = MakeMInst( X86::SARmCL32,FrameIndex, MI); break; + case X86::SARri8: NI = MakeMIInst(X86::SARmi8 , FrameIndex, MI); break; + case X86::SARri16: NI = MakeMIInst(X86::SARmi16, FrameIndex, MI); break; + case X86::SARri32: NI = MakeMIInst(X86::SARmi32, FrameIndex, MI); break; case X86::TESTrr8: NI = MakeMRInst(X86::TESTmr8 ,FrameIndex, MI); break; case X86::TESTrr16:NI = MakeMRInst(X86::TESTmr16,FrameIndex, MI); break; case X86::TESTrr32:NI = MakeMRInst(X86::TESTmr32,FrameIndex, MI); break; |