This is the mail archive of the gcc-patches@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]

Re: [PATCH] PR target/70750: [6/7 Regression] Load and call no longer combined for indirect calls on x86


On Thu, Apr 21, 2016 at 11:29 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
> On Thu, Apr 21, 2016 at 7:46 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>> 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".
>>
>> OK for trunk and 6 branch if there is no regression on x86-64?
>
> OK everywhere, but needs RM's approval for branch.

OK to backport for GCC 6 branch?

> Thanks,
> Uros.
>
>> H.J.
>> ---
>> 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.


-- 
H.J.


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