diff options
| author | Jim Grosbach <grosbach@apple.com> | 2010-01-27 00:07:20 +0000 |
|---|---|---|
| committer | Jim Grosbach <grosbach@apple.com> | 2010-01-27 00:07:20 +0000 |
| commit | a3575ca846b522398b5167bd2eedc808a744b39c (patch) | |
| tree | 6d0a278ecdcd572d2856f3ca539ed2b97a352917 /llvm/lib/Target | |
| parent | 67a69dd2ed4400c34aef8e4fcfb783dfa602e9db (diff) | |
| download | bcm5719-llvm-a3575ca846b522398b5167bd2eedc808a744b39c.tar.gz bcm5719-llvm-a3575ca846b522398b5167bd2eedc808a744b39c.zip | |
Adjust setjmp instruction sequence to not need 32-bit alignment padding
llvm-svn: 94627
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrThumb.td | 7 |
2 files changed, 4 insertions, 5 deletions
diff --git a/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp b/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp index 1e52211521c..3c3f054bc85 100644 --- a/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp +++ b/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp @@ -470,7 +470,7 @@ unsigned ARMBaseInstrInfo::GetInstSizeInBytes(const MachineInstr *MI) const { case ARM::Int_eh_sjlj_setjmp: return 24; case ARM::tInt_eh_sjlj_setjmp: - return 22; + return 20; case ARM::t2Int_eh_sjlj_setjmp: return 22; case ARM::BR_JTr: diff --git a/llvm/lib/Target/ARM/ARMInstrThumb.td b/llvm/lib/Target/ARM/ARMInstrThumb.td index 746caffe22e..a3a83ddd3f7 100644 --- a/llvm/lib/Target/ARM/ARMInstrThumb.td +++ b/llvm/lib/Target/ARM/ARMInstrThumb.td @@ -820,14 +820,13 @@ let Defs = "mov\tr12, r1\t@ begin eh.setjmp\n" "\tmov\tr1, sp\n" "\tstr\tr1, [$src, #8]\n" - "\tadr\tr1, 0f\n" - "\tadds\tr1, #1\n" + "\tmov\tr1, pc\n" + "\tadds\tr1, #9\n" "\tstr\tr1, [$src, #4]\n" "\tmov\tr1, r12\n" "\tmovs\tr0, #0\n" "\tb\t1f\n" - ".align 2\n" - "0:\tmovs\tr0, #1\t@ end eh.setjmp\n" + "\tmovs\tr0, #1\t@ end eh.setjmp\n" "1:", "", [(set R0, (ARMeh_sjlj_setjmp GPR:$src))]>; } |

