[PATCH] [Mips][Disassembler][R6] Disassembler crashes on compact jump instructions for r6

Vladimir Medic Vladimir.Medic at imgtec.com
Wed Jan 21 03:35:27 PST 2015


Removed dedicated decoder method as suggested.


http://reviews.llvm.org/D6817

Files:
  lib/Target/Mips/Mips32r6InstrInfo.td
  test/MC/Disassembler/Mips/mips32r6/valid-mips32r6-el.txt
  test/MC/Disassembler/Mips/mips32r6/valid-mips32r6.txt
  test/MC/Disassembler/Mips/mips32r6/valid-xfail-mips32r6.txt
  test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt
  test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt
  test/MC/Disassembler/Mips/mips64r6/valid-xfail-mips64r6.txt

Index: lib/Target/Mips/Mips32r6InstrInfo.td
===================================================================
--- lib/Target/Mips/Mips32r6InstrInfo.td
+++ lib/Target/Mips/Mips32r6InstrInfo.td
@@ -379,7 +379,7 @@
   list<dag> Pattern = [];
   bit isTerminator = 1;
   bit hasDelaySlot = 0;
-  string DecoderMethod = "DecodeSimm16";
+ // string DecoderMethod = "DecodeSimm16";
 }
 
 class JIALC_DESC : JMP_IDX_COMPACT_DESC_BASE<"jialc", calloffset16,
Index: test/MC/Disassembler/Mips/mips32r6/valid-mips32r6-el.txt
===================================================================
--- test/MC/Disassembler/Mips/mips32r6/valid-mips32r6-el.txt
+++ test/MC/Disassembler/Mips/mips32r6/valid-mips32r6-el.txt
@@ -142,3 +142,5 @@
 0xb7 0x34 0x52 0x49 # CHECK: lwc2 $18, -841($6)
 0x75 0x92 0xf4 0x49 # CHECK: sdc2 $20, 629($18)
 0x30 0x81 0x79 0x49 # CHECK: swc2 $25, 304($16)
+0x00 0x01 0x05 0xf8 # CHECK: jialc $5, 256
+0x00 0x01 0x05 0xd8 # CHECK: jic $5, 256
Index: test/MC/Disassembler/Mips/mips32r6/valid-mips32r6.txt
===================================================================
--- test/MC/Disassembler/Mips/mips32r6/valid-mips32r6.txt
+++ test/MC/Disassembler/Mips/mips32r6/valid-mips32r6.txt
@@ -142,3 +142,6 @@
 0x49 0x52 0x34 0xb7 # CHECK: lwc2 $18, -841($6)
 0x49 0xf4 0x92 0x75 # CHECK: sdc2 $20, 629($18)
 0x49 0x79 0x81 0x30 # CHECK: swc2 $25, 304($16)
+0xf8 0x05 0x01 0x00 # CHECK: jialc $5, 256
+0xd8 0x05 0x01 0x00 # CHECK: jic $5, 256
+
Index: test/MC/Disassembler/Mips/mips32r6/valid-xfail-mips32r6.txt
===================================================================
--- test/MC/Disassembler/Mips/mips32r6/valid-xfail-mips32r6.txt
+++ test/MC/Disassembler/Mips/mips32r6/valid-xfail-mips32r6.txt
@@ -14,6 +14,4 @@
 0x60 0xa0 0x00 0x40 # CHECK: bnec $5, $zero, 256
 0x60 0xa6 0x00 0x40 # CHECK: bnec $5, $6, 256
 0x7c 0xa1 0x04 0x25 # CHECK: cache 1, 8($5)
-0xf8 0x05 0x01 0x00 # CHECK: jialc $5, 256
-0xd8 0x05 0x01 0x00 # CHECK: jic $5, 256
 0x7c 0xa1 0x04 0x35 # CHECK: pref 1, 8($5)
Index: test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt
===================================================================
--- test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt
+++ test/MC/Disassembler/Mips/mips64r6/valid-mips64r6-el.txt
@@ -160,3 +160,6 @@
 0xb7 0x34 0x52 0x49 # CHECK: lwc2 $18, -841($6)
 0x75 0x92 0xf4 0x49 # CHECK: sdc2 $20, 629($18)
 0x30 0x81 0x79 0x49 # CHECK: swc2 $25, 304($16)
+0x00 0x01 0x05 0xf8 # CHECK: jialc $5, 256
+0x00 0x01 0x05 0xd8 # CHECK: jic $5, 256
+
Index: test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt
===================================================================
--- test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt
+++ test/MC/Disassembler/Mips/mips64r6/valid-mips64r6.txt
@@ -160,3 +160,6 @@
 0x49 0x52 0x34 0xb7 # CHECK: lwc2 $18, -841($6)
 0x49 0xf4 0x92 0x75 # CHECK: sdc2 $20, 629($18)
 0x49 0x79 0x81 0x30 # CHECK: swc2 $25, 304($16)
+0xf8 0x05 0x01 0x00 # CHECK: jialc $5, 256
+0xd8 0x05 0x01 0x00 # CHECK: jic $5, 256
+
Index: test/MC/Disassembler/Mips/mips64r6/valid-xfail-mips64r6.txt
===================================================================
--- test/MC/Disassembler/Mips/mips64r6/valid-xfail-mips64r6.txt
+++ test/MC/Disassembler/Mips/mips64r6/valid-xfail-mips64r6.txt
@@ -14,8 +14,6 @@
 0x60 0xa0 0x00 0x40 # CHECK: bnec $5, $zero, 256
 0x60 0xa6 0x00 0x40 # CHECK: bnec $5, $6, 256
 0x7c 0xa1 0x04 0x25 # CHECK: cache 1, 8($5)
-0xf8 0x05 0x01 0x00 # CHECK: jialc $5, 256
-0xd8 0x05 0x01 0x00 # CHECK: jic $5, 256
 0x7c 0xa1 0x04 0x35 # CHECK: pref 1, 8($5)
 0x64 0x58 0x46 0x9f # CHECK: daddiu $24, $2, 18079
 0x66 0x73 0x69 0x3f # CHECK: daddiu $19, $19, 26943

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D6817.18496.patch
Type: text/x-patch
Size: 3678 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150121/af1fbc47/attachment.bin>


More information about the llvm-commits mailing list