From 44ed9ef26f62c4b348236c4dcea1de78d03900d9 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 16 Jun 2014 09:50:15 +0930 Subject: [PATCH] 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. --- gas/ChangeLog | 5 +++++ gas/config/tc-cris.c | 10 ++++++++-- gas/testsuite/ChangeLog | 4 ++++ gas/testsuite/gas/cris/rd-bkw4v32.d | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 31c6291bc56..953130a3158 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2014-06-16 Alan Modra + + * config/tc-cris.c (md_create_long_jump): Follow "short" jump + with a nop rather than leaving uninitialised. + 2014-06-13 Chen Gang * config/tc-score7.c: Replace sprintf with strcpy where diff --git a/gas/config/tc-cris.c b/gas/config/tc-cris.c index 86d80620d6c..aba4ef7dffc 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 43a37e36fa7..7a42746296f 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2014-06-16 Alan Modra + + * gas/cris/rd-bkw4v32.d: Update. + 2014-06-10 H.J. Lu * 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 210746c108f..35fa5b2230a 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 4ad2: b005 nop - 4ad4: 0000 bcc \. + 4ad4: b005 nop 4ad6: 6f9e 0000 0000 move.d 0 ,r9 4ad8: R_CRIS_32 x336 4adc: bfbd 0000 0000 jsr 0 -- 2.30.2