]> granicus.if.org Git - llvm/commitdiff
Merging r227084:
authorDaniel Sanders <daniel.sanders@imgtec.com>
Mon, 27 Apr 2015 10:29:59 +0000 (10:29 +0000)
committerDaniel Sanders <daniel.sanders@imgtec.com>
Mon, 27 Apr 2015 10:29:59 +0000 (10:29 +0000)
------------------------------------------------------------------------
r227084 | vmedic | 2015-01-26 10:33:43 +0000 (Mon, 26 Jan 2015) | 1 line

When disassembler meets compact jump instructions for r6 it crashes as the access to operands array is out of range. This patch removes dedicated decoder method that wrongly handles decoding of these instructions.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_36@235859 91177308-0d34-0410-b5e6-96231b3b80d8

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 baf746061bef663e0fb7338a1e07a2a79692e84b..2175160a45ac25a5cd9bf07b70186253654d2004 100644 (file)
@@ -379,7 +379,6 @@ class JMP_IDX_COMPACT_DESC_BASE<string opstr, DAGOperand opnd,
   list<dag> Pattern = [];
   bit isTerminator = 1;
   bit hasDelaySlot = 0;
-  string DecoderMethod = "DecodeSimm16";
 }
 
 class JIALC_DESC : JMP_IDX_COMPACT_DESC_BASE<"jialc", calloffset16,
index ce6dd40b72f9a5cd637061f3d9d505586cd35be3..85d1a0eff4e17f367ed7620f4487a157aca6424b 100644 (file)
 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 4781d0c4db8e03989e328f2d511349e5b990709c..3c4d1e22e8c94e5232b4b43a57de92c86f2390c9 100644 (file)
 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 45c5410e74f4ff830e1c52fc4cb7a12d98b5a1c2..47b6bdc1099855c7e5a73c6ce7f4df997a7eb0d6 100644 (file)
@@ -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 77e232aea95adc75c5963c0d24ea379b4c6847d2..0d83a347a1fe4211391e145d9b331d3b779acbf4 100644 (file)
 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 66baf5f2f1c654da070c7ec43ee7e1443eeebe45..f4ce8f7ae5465d856b0d444b86f66f850ec159b6 100644 (file)
 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 400f1c75caa84892e300e0caa567487f551856a5..60c8f7e35a01f45e9157980a2f640bc24f55fc6b 100644 (file)
@@ -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