From a52d7da1d8c424276f79b80c89ed045166083730 Mon Sep 17 00:00:00 2001 From: Johnny Chen Date: Thu, 31 Mar 2011 19:28:35 +0000 Subject: Fix single word and unsigned byte data transfer instruction encodings so that Inst{4} = 0. rdar://problem/9213022 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128662 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/ARMInstrInfo.td | 2 ++ test/MC/Disassembler/ARM/invalid-LDRrs-arm.txt | 4 ++++ 2 files changed, 6 insertions(+) create mode 100644 test/MC/Disassembler/ARM/invalid-LDRrs-arm.txt diff --git a/lib/Target/ARM/ARMInstrInfo.td b/lib/Target/ARM/ARMInstrInfo.td index 7706822..18127f3 100644 --- a/lib/Target/ARM/ARMInstrInfo.td +++ b/lib/Target/ARM/ARMInstrInfo.td @@ -991,6 +991,7 @@ multiclass AI_ldr1 { bits<4> Rt; bits<17> shift; + let shift{4} = 0; // Inst{4} = 0 let Inst{23} = shift{12}; // U (add = ('U' == 1)) let Inst{19-16} = shift{16-13}; // Rn let Inst{15-12} = Rt; @@ -1020,6 +1021,7 @@ multiclass AI_str1 { bits<4> Rt; bits<17> shift; + let shift{4} = 0; // Inst{4} = 0 let Inst{23} = shift{12}; // U (add = ('U' == 1)) let Inst{19-16} = shift{16-13}; // Rn let Inst{15-12} = Rt; diff --git a/test/MC/Disassembler/ARM/invalid-LDRrs-arm.txt b/test/MC/Disassembler/ARM/invalid-LDRrs-arm.txt new file mode 100644 index 0000000..23a0b85 --- /dev/null +++ b/test/MC/Disassembler/ARM/invalid-LDRrs-arm.txt @@ -0,0 +1,4 @@ +# RUN: llvm-mc --disassemble %s -triple=arm-apple-darwin9 |& grep {invalid instruction encoding} + +# LDR (register) has encoding Inst{4} = 0. +0xba 0xae 0x9f 0x57 -- cgit v1.1