+2018-05-20 Chung-Ju Wu <jasonwucj@gmail.com>
+
+ * config/nds32/constraints.md (S): New constraint.
+ * config/nds32/nds32.md (call_internal): Use constraint S.
+ (call_value_internal): Likewise.
+ (sibcall_internal): Likewise.
+ (sibcall_value_internal): Likewise.
+
2018-05-20 Kito Cheng <kito.cheng@gmail.com>
Chung-Ju Wu <jasonwucj@gmail.com>
(match_test "(TARGET_FPU_SINGLE || TARGET_FPU_DOUBLE)
&& nds32_float_mem_operand_p (op)")))
+(define_constraint "S"
+ "@internal
+ A constant call address."
+ (match_operand 0 "nds32_symbolic_operand"))
+
;; ------------------------------------------------------------------------
)
(define_insn "call_internal"
- [(parallel [(call (mem (match_operand:SI 0 "nds32_call_address_operand" "r, i"))
+ [(parallel [(call (mem (match_operand:SI 0 "nds32_call_address_operand" "r, S"))
(match_operand 1))
(clobber (reg:SI LP_REGNUM))
(clobber (reg:SI TA_REGNUM))])]
(define_insn "call_value_internal"
[(parallel [(set (match_operand 0)
- (call (mem (match_operand:SI 1 "nds32_call_address_operand" "r, i"))
+ (call (mem (match_operand:SI 1 "nds32_call_address_operand" "r, S"))
(match_operand 2)))
(clobber (reg:SI LP_REGNUM))
(clobber (reg:SI TA_REGNUM))])]
})
(define_insn "sibcall_internal"
- [(parallel [(call (mem (match_operand:SI 0 "nds32_call_address_operand" "r, i"))
+ [(parallel [(call (mem (match_operand:SI 0 "nds32_call_address_operand" "r, S"))
(match_operand 1))
(clobber (reg:SI TA_REGNUM))
(return)])]
(define_insn "sibcall_value_internal"
[(parallel [(set (match_operand 0)
- (call (mem (match_operand:SI 1 "nds32_call_address_operand" "r, i"))
+ (call (mem (match_operand:SI 1 "nds32_call_address_operand" "r, S"))
(match_operand 2)))
(clobber (reg:SI TA_REGNUM))
(return)])]