diff options
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-cris.c | 10 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gas/testsuite/gas/cris/rd-bkw4v32.d | 2 |
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> |