diff options
author | Johnny Chen <johnny.chen@apple.com> | 2011-04-01 22:32:51 +0000 |
---|---|---|
committer | Johnny Chen <johnny.chen@apple.com> | 2011-04-01 22:32:51 +0000 |
commit | 1e1010f56ffd819d2af21fabec7f77c6544cf82f (patch) | |
tree | 1ec61ec6f7cb2fafe5ad1b51e279e3da80b9718b /llvm/lib/CodeGen/InterferenceCache.cpp | |
parent | 8b94c295c3dd8f19af44fe4cd4f78509e45fe03a (diff) | |
download | llvm-1e1010f56ffd819d2af21fabec7f77c6544cf82f.zip llvm-1e1010f56ffd819d2af21fabec7f77c6544cf82f.tar.gz llvm-1e1010f56ffd819d2af21fabec7f77c6544cf82f.tar.bz2 |
Fix the instruction table entries for AI1_adde_sube_s_irs multiclass definition so that
all the instruction have:
let Inst{31-27} = 0b1110; // non-predicated
Before, the ARM decoder was confusing:
> 0x40 0xf3 0xb8 0x80
as:
Opcode=16 Name=ADCSSrs Format=ARM_FORMAT_DPSOREGFRM(5)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
-------------------------------------------------------------------------------------------------
| 1: 0: 0: 0| 0: 0: 0: 0| 1: 0: 1: 1| 1: 0: 0: 0| 1: 1: 1: 1| 0: 0: 1: 1| 0: 1: 0: 0| 0: 0: 0: 0|
-------------------------------------------------------------------------------------------------
adcs pc, r8, r0, asr #6
since the cond field for ADCSSrs is a wild card, and so is ADCrs, with the ADCSSrs having Inst{20} as '1'.
Now, the AR decoder behaves correctly:
> 0x40 0xf3 0xb8 0x80
> END
Executing command: /Volumes/data/lldb/llvm/Debug+Asserts/bin/llvm-mc -disassemble -triple=arm-apple-darwin -debug-only=arm-disassembler mc-input.txt
Opcode=19 Name=ADCrs Format=ARM_FORMAT_DPSOREGFRM(5)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
-------------------------------------------------------------------------------------------------
| 1: 0: 0: 0| 0: 0: 0: 0| 1: 0: 1: 1| 1: 0: 0: 0| 1: 1: 1: 1| 0: 0: 1: 1| 0: 1: 0: 0| 0: 0: 0: 0|
-------------------------------------------------------------------------------------------------
adcshi pc, r8, r0, asr #6
>
rdar://problem/9223094
llvm-svn: 128746
Diffstat (limited to 'llvm/lib/CodeGen/InterferenceCache.cpp')
0 files changed, 0 insertions, 0 deletions