aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/ft32
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2018-10-15 17:22:05 -0600
committerJeff Law <law@gcc.gnu.org>2018-10-15 17:22:05 -0600
commit95debbf1436bbab7f564881cd3cbe6c55c764bdd (patch)
treef340fbe65fa13e5a5301699bb3c6228bb4a41754 /gcc/config/ft32
parent0141ab44c5591752b2cd235fb9644ed289a7e671 (diff)
downloadgcc-95debbf1436bbab7f564881cd3cbe6c55c764bdd.zip
gcc-95debbf1436bbab7f564881cd3cbe6c55c764bdd.tar.gz
gcc-95debbf1436bbab7f564881cd3cbe6c55c764bdd.tar.bz2
ft32.md (ft32_general_movsrc_operand): Disable reg + sym +- const_int addressing modes.
* config/ft32/ft32.md (ft32_general_movsrc_operand): Disable reg + sym +- const_int addressing modes. From-SVN: r265179
Diffstat (limited to 'gcc/config/ft32')
-rw-r--r--gcc/config/ft32/predicates.md7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/config/ft32/predicates.md b/gcc/config/ft32/predicates.md
index bac2e8e..0c147ec 100644
--- a/gcc/config/ft32/predicates.md
+++ b/gcc/config/ft32/predicates.md
@@ -23,6 +23,11 @@
;; -------------------------------------------------------------------------
;; Nonzero if OP can be source of a simple move operation.
+;;
+;; The CONST_INT could really be CONST if we were to fix
+;; ft32_print_operand_address to format the address correctly.
+;; It might require assembler/linker work as well to ensure
+;; the right relocation is emitted.
(define_predicate "ft32_general_movsrc_operand"
(match_code "mem,const_int,reg,subreg,symbol_ref,label_ref,const")
@@ -34,7 +39,7 @@
if (MEM_P (op)
&& GET_CODE (XEXP (op, 0)) == PLUS
&& GET_CODE (XEXP (XEXP (op, 0), 0)) == REG
- && GET_CODE (XEXP (XEXP (op, 0), 1)) == CONST)
+ && GET_CODE (XEXP (XEXP (op, 0), 1)) == CONST_INT)
return 1;
return general_operand (op, mode);