aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2014-06-16 09:50:15 +0930
committerAlan Modra <amodra@gmail.com>2014-06-16 12:23:54 +0930
commit44ed9ef26f62c4b348236c4dcea1de78d03900d9 (patch)
tree918b48faecdd1a5680f1d972c179b4325f58c132 /gas
parentcc0c4d535e50adc3fb928943a1945f8e62c933bf (diff)
downloadgdb-44ed9ef26f62c4b348236c4dcea1de78d03900d9.zip
gdb-44ed9ef26f62c4b348236c4dcea1de78d03900d9.tar.gz
gdb-44ed9ef26f62c4b348236c4dcea1de78d03900d9.tar.bz2
Fix uninitialised CRIS insn
gas/ * config/tc-cris.c (md_create_long_jump): Follow "short" jump with a nop rather than leaving uninitialised. gas/testsuite/ * gas/cris/rd-bkw4v32.d: Update.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-cris.c10
-rw-r--r--gas/testsuite/ChangeLog4
-rw-r--r--gas/testsuite/gas/cris/rd-bkw4v32.d2
4 files changed, 18 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 31c6291..953130a3 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2014-06-16 Alan Modra <amodra@gmail.com>
+
+ * config/tc-cris.c (md_create_long_jump): Follow "short" jump
+ with a nop rather than leaving uninitialised.
+
2014-06-13 Chen Gang <gang.chen.5i5j@gmail.com>
* config/tc-score7.c: Replace sprintf with strcpy where
diff --git a/gas/config/tc-cris.c b/gas/config/tc-cris.c
index 86d8062..aba4ef7 100644
--- a/gas/config/tc-cris.c
+++ b/gas/config/tc-cris.c
@@ -1124,9 +1124,15 @@ md_create_long_jump (char *storep, addressT from_addr, addressT to_addr,
if (max_short_minus_distance <= distance
&& distance <= max_short_plus_distance)
- /* Then make it a "short" long jump. */
- md_create_short_jump (storep, from_addr, to_addr, fragP,
+ {
+ /* Then make it a "short" long jump. */
+ md_create_short_jump (storep, from_addr, to_addr, fragP,
to_symbol);
+ if (cris_arch == arch_crisv32)
+ md_number_to_chars (storep + 6, NOP_OPCODE_V32, 2);
+ else
+ md_number_to_chars (storep + 6, NOP_OPCODE, 2);
+ }
else
{
/* We have a "long" long jump: "JUMP [PC+]". If CRISv32, always
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 43a37e3..7a42746 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2014-06-16 Alan Modra <amodra@gmail.com>
+
+ * gas/cris/rd-bkw4v32.d: Update.
+
2014-06-10 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/prefix.s: Add another fwait test.
diff --git a/gas/testsuite/gas/cris/rd-bkw4v32.d b/gas/testsuite/gas/cris/rd-bkw4v32.d
index 210746c..35fa5b2 100644
--- a/gas/testsuite/gas/cris/rd-bkw4v32.d
+++ b/gas/testsuite/gas/cris/rd-bkw4v32.d
@@ -43,7 +43,7 @@ Disassembly of section \.text:
4acc: b005 nop
4ace: ffed 4635 ba 8014 <x\+0x8014>
4ad2: b005 nop
- 4ad4: 0000 bcc \.
+ 4ad4: b005 nop
4ad6: 6f9e 0000 0000 move.d 0 <x>,r9
4ad8: R_CRIS_32 x336
4adc: bfbd 0000 0000 jsr 0 <x>