This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/70750] [6/7 Regression] Load and call no longer combined for indirect calls on x86


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70750

--- Comment #5 from hjl at gcc dot gnu.org <hjl at gcc dot gnu.org> ---
Author: hjl
Date: Thu Apr 21 22:01:34 2016
New Revision: 235353

URL: https://gcc.gnu.org/viewcvs?rev=235353&root=gcc&view=rev
Log:
X86: Fix a typo in call_insn_operand

r231923 has

 ;; Test for a valid operand for a call instruction.
 ;; Allow constant call address operands in Pmode only.
 (define_special_predicate "call_insn_operand"
   (ior (match_test "constant_call_address_operand
                     (op, mode == VOIDmode ? mode : Pmode)")
        (match_operand 0 "call_register_no_elim_operand")
-       (and (not (match_test "TARGET_X32"))
-           (match_operand 0 "memory_operand"))))
+       (ior (and (not (match_test "TARGET_X32"))
+                (match_operand 0 "sibcall_memory_operand"))
                                   ^^^^^^^^^^^^^^^^^^^^^^^ A typo.
+           (and (match_test "TARGET_X32 && Pmode == DImode")
+                (match_operand 0 "GOT_memory_operand")))))

"sibcall_memory_operand" should be "memory_operand".

gcc/

        PR target/70750
        * config/i386/predicates.md (call_insn_operand): Replace
        sibcall_memory_operand with memory_operand.

gcc/testsuite/

        PR target/70750
        * gcc.target/i386/pr70750-1.c: New test.
        * gcc.target/i386/pr70750-2.c: Likewise.

Added:
    trunk/gcc/testsuite/gcc.target/i386/pr70750-1.c
    trunk/gcc/testsuite/gcc.target/i386/pr70750-2.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/i386/predicates.md
    trunk/gcc/testsuite/ChangeLog

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]