From e93417bcc8940191396d7fa977e2c8d713bd85f6 Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Fri, 8 Oct 2010 23:52:16 +0000 Subject: [PATCH] Fix the store part of this as well. Fixes smg2000. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116123 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/ARMFastISel.cpp | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/lib/Target/ARM/ARMFastISel.cpp b/lib/Target/ARM/ARMFastISel.cpp index 0daf4df318b..7eb9decce6b 100644 --- a/lib/Target/ARM/ARMFastISel.cpp +++ b/lib/Target/ARM/ARMFastISel.cpp @@ -762,9 +762,9 @@ bool ARMFastISel::ARMEmitStore(EVT VT, unsigned SrcReg, switch (VT.getSimpleVT().SimpleTy) { default: return false; case MVT::i1: - case MVT::i8: StrOpc = isThumb ? ARM::tSTRB : ARM::STRB; break; - case MVT::i16: StrOpc = isThumb ? ARM::tSTRH : ARM::STRH; break; - case MVT::i32: StrOpc = isThumb ? ARM::tSTR : ARM::STR; break; + case MVT::i8: StrOpc = isThumb ? ARM::t2STRBi8 : ARM::STRB; break; + case MVT::i16: StrOpc = isThumb ? ARM::t2STRHi8 : ARM::STRH; break; + case MVT::i32: StrOpc = isThumb ? ARM::t2STRi8 : ARM::STR; break; case MVT::f32: if (!Subtarget->hasVFP2()) return false; StrOpc = ARM::VSTRS; @@ -779,15 +779,10 @@ bool ARMFastISel::ARMEmitStore(EVT VT, unsigned SrcReg, // The thumb addressing mode has operands swapped from the arm addressing // mode, the floating point one only has two operands. - if (isFloat) + if (isFloat || isThumb) AddOptionalDefs(BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(StrOpc)) .addReg(SrcReg).addReg(DstReg).addImm(Offset)); - else if (isThumb) - AddOptionalDefs(BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, - TII.get(StrOpc)) - .addReg(SrcReg).addReg(DstReg).addImm(Offset).addReg(0)); - else AddOptionalDefs(BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL, TII.get(StrOpc)) -- 2.34.1