]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386: Convert a couple of predicates to use match_code RTXes.
authorUros Bizjak <ubizjak@gmail.com>
Fri, 4 Jun 2021 15:51:05 +0000 (17:51 +0200)
committerUros Bizjak <ubizjak@gmail.com>
Fri, 4 Jun 2021 15:52:06 +0000 (17:52 +0200)
No functional changes.

2021-06-04  Uroš Bizjak  <ubizjak@gmail.com>

gcc/
* config/i386/predicates.md (GOT_memory_operand):
Implement using match_code RTXes.
(GOT32_symbol_operand): Ditto.

gcc/config/i386/predicates.md

index abd307ebdb87e83c9dd3fc1e10d525a59ee178af..d2f5f15d971ab49187beba918931641e4f28bc12 100644 (file)
 
 ;; Return true if OP is a GOT memory operand.
 (define_predicate "GOT_memory_operand"
-  (match_operand 0 "memory_operand")
-{
-  op = XEXP (op, 0);
-  return (GET_CODE (op) == CONST
-         && GET_CODE (XEXP (op, 0)) == UNSPEC
-         && XINT (XEXP (op, 0), 1) == UNSPEC_GOTPCREL);
-})
+  (and (match_operand 0 "memory_operand")
+       (match_code "const" "0")
+       (match_code "unspec" "00")
+       (match_test "XINT (XEXP (XEXP (op, 0), 0), 1) == UNSPEC_GOTPCREL")))
 
 ;; Test for a valid operand for a call instruction.
 ;; Allow constant call address operands in Pmode only.
 
 ;; Return true if OP is a 32-bit GOT symbol operand.
 (define_predicate "GOT32_symbol_operand"
-  (match_test "GET_CODE (op) == CONST
-               && GET_CODE (XEXP (op, 0)) == UNSPEC
-               && XINT (XEXP (op, 0), 1) == UNSPEC_GOT"))
+  (and (match_code "const")
+       (match_code "unspec" "0")
+       (match_test "XINT (XEXP (op, 0), 1) == UNSPEC_GOT")))
 
 ;; Match exactly zero.
 (define_predicate "const0_operand"