diff options
| author | Brian Gaeke <gaeke@uiuc.edu> | 2004-06-24 06:44:57 +0000 |
|---|---|---|
| committer | Brian Gaeke <gaeke@uiuc.edu> | 2004-06-24 06:44:57 +0000 |
| commit | 8863de761d77b32f707a36bfa65c82bbfcaac611 (patch) | |
| tree | f161080d65d8efb50b3fa59f53eb8370402c3f45 | |
| parent | 1e8cc73ea310bf988576eed4f150b44bdef52490 (diff) | |
| download | bcm5719-llvm-8863de761d77b32f707a36bfa65c82bbfcaac611.tar.gz bcm5719-llvm-8863de761d77b32f707a36bfa65c82bbfcaac611.zip | |
Strange as it may sound, we'll not use LDD/STD to store longs. For reasons of
representational consistency, we want to address the halves of each 64-bit value
separately.
llvm-svn: 14356
| -rw-r--r-- | llvm/lib/Target/SparcV8/InstSelectSimple.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/SparcV8/InstSelectSimple.cpp b/llvm/lib/Target/SparcV8/InstSelectSimple.cpp index e25a73c6ae2..bef5002160e 100644 --- a/llvm/lib/Target/SparcV8/InstSelectSimple.cpp +++ b/llvm/lib/Target/SparcV8/InstSelectSimple.cpp @@ -546,7 +546,8 @@ void V8ISel::visitLoadInst(LoadInst &I) { BuildMI (BB, V8::LDmr, 1, DestReg).addReg (PtrReg).addSImm(0); return; case cLong: - BuildMI (BB, V8::LDDmr, 1, DestReg).addReg (PtrReg).addSImm(0); + BuildMI (BB, V8::LDmr, 1, DestReg).addReg (PtrReg).addSImm(0); + BuildMI (BB, V8::LDmr, 1, DestReg+1).addReg (PtrReg).addSImm(4); return; default: std::cerr << "Load instruction not handled: " << I; @@ -570,7 +571,8 @@ void V8ISel::visitStoreInst(StoreInst &I) { BuildMI (BB, V8::STrm, 3).addReg (PtrReg).addSImm (0).addReg (SrcReg); return; case cLong: - BuildMI (BB, V8::STDrm, 3).addReg (PtrReg).addSImm (0).addReg (SrcReg); + BuildMI (BB, V8::STrm, 3).addReg (PtrReg).addSImm (0).addReg (SrcReg); + BuildMI (BB, V8::STrm, 3).addReg (PtrReg).addSImm (4).addReg (SrcReg+1); return; default: std::cerr << "Store instruction not handled: " << I; |

