This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fix uninitialised CRIS insn


Fixes "FAIL: gas/cris/rd-bkw4v32" with MALLOC_PERTURB_=1

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.

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/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>

-- 
Alan Modra
Australia Development Lab, IBM


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]