[patch][aarch64]: fix unrecognizable insn for ldr got in ilp32 tiny

Wilco Dijkstra Wilco.Dijkstra@arm.com
Thu Jun 13 17:41:00 GMT 2019


Hi Sylvia,

-(define_insn "ldr_got_tiny"
+(define_insn "ldr_got_tiny_di"
   [(set (match_operand:DI 0 "register_operand" "=r")
-	(unspec:DI [(match_operand:DI 1 "aarch64_valid_symref" "S")]
-		   UNSPEC_GOTTINYPIC))]
+	(unspec:DI
+	  [(match_operand:DI 1 "aarch64_valid_symref" "S")]
+	UNSPEC_GOTTINYPIC))]
   ""
   "ldr\\t%0, %L1"
   [(set_attr "type" "load_8")]
 )
 
+(define_insn "ldr_got_tiny_si"
+  [(set (match_operand:SI 0 "register_operand" "=r")
+	(unspec:SI
+	  [(match_operand:SI 1 "aarch64_valid_symref" "S")]
+	UNSPEC_GOTTINYPIC))]
+  "TARGET_ILP32"
+  "ldr\\t%0, %L1"
+  [(set_attr "type" "load_4")]
+)

These can be easily combined like the related ldr_got_small_<mode>.

Wilco



More information about the Gcc-patches mailing list