diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2013-01-18 12:34:11 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2013-01-18 12:34:11 -0800 |
commit | 43269d882367dc4f0e4c2651d6625e1b7de78764 (patch) | |
tree | 6aaf525a6fb8a4fb63a71c9ca56be58bc1d6655b /gcc/config/i386/predicates.md | |
parent | ce97ec0e268b7b50b9f801dd12ffc67042c47193 (diff) | |
parent | 48dc1117de124a2265129a36bfbbc211522c2c02 (diff) | |
download | gcc-43269d882367dc4f0e4c2651d6625e1b7de78764.tar.gz |
Merge remote-tracking branch 'origin/gcc-4_7-branch' into hjl/tsx/gcc-4_7-branchhjl/tsx/gcc-4_7-branch
Conflicts:
gcc/config/i386/driver-i386.c
gcc/config/i386/i386.c
gcc/config/i386/sync.md
Diffstat (limited to 'gcc/config/i386/predicates.md')
-rw-r--r-- | gcc/config/i386/predicates.md | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/config/i386/predicates.md b/gcc/config/i386/predicates.md index 596b0a8bd98..9e312915bfc 100644 --- a/gcc/config/i386/predicates.md +++ b/gcc/config/i386/predicates.md @@ -822,6 +822,10 @@ return parts.seg == SEG_DEFAULT; }) +;; Return true for RTX codes that force SImode address. +(define_predicate "SImode_address_operand" + (match_code "subreg,zero_extend,and")) + ;; Return true if op if a valid base register, displacement or ;; sum of base register and displacement for VSIB addressing. (define_predicate "vsib_address_operand" @@ -958,6 +962,9 @@ struct ix86_address parts; int ok; + if (TARGET_64BIT || !flag_pic) + return true; + ok = ix86_decompose_address (XEXP (op, 0), &parts); gcc_assert (ok); @@ -988,7 +995,7 @@ ;; by the modRM array. (define_predicate "long_memory_operand" (and (match_operand 0 "memory_operand") - (match_test "memory_address_length (op)"))) + (match_test "memory_address_length (op, false)"))) ;; Return true if OP is a comparison operator that can be issued by fcmov. (define_predicate "fcmov_comparison_operator" |