===================================================================
@@ -256,6 +256,19 @@
(match_test "!rl78_far_p (op) && rl78_as_legitimate_address (VOIDmode, XEXP (op, 0), true, ADDR_SPACE_GENERIC)"))
)
+(define_memory_constraint "U"
+ "memory references valid with mov to/from a/ax"
+ (and (match_code "mem")
+ (match_test "rl78_virt_insns_ok ()
+|| satisfies_constraint_Wab (op)
+|| satisfies_constraint_Wbc (op)
+|| satisfies_constraint_Wde (op)
+|| satisfies_constraint_Wd2 (op)
+|| satisfies_constraint_Whl (op)
+|| satisfies_constraint_Wh1 (op)
+|| satisfies_constraint_Whb (op)
+|| satisfies_constraint_Ws1 (op)
+|| satisfies_constraint_Wfr (op) ")))
(define_memory_constraint "Qbi"
"built-in compare types"
===================================================================
@@ -276,6 +276,7 @@
mov a, x
mov %h0, a
; end of mulqi macro"
+;; [(set_attr "valloc" "umul")]
)
(define_insn "*mulhi3_rl78"
@@ -290,6 +291,7 @@
mulhu ; bcax = bc * ax
movw %h0, ax
; end of mulhi macro"
+;; [(set_attr "valloc" "macax")]
)
(define_insn "*mulhi3_g13"
@@ -309,6 +311,7 @@
movw ax, 0xffff6 ; MDBL
movw %h0, ax
; end of mulhi macro"
+;; [(set_attr "valloc" "umul")]
)
;; 0xFFFF0 is MACR(L). 0xFFFF2 is MACR(H) but we don't care about it