[PATCH 3/5] x86: Add -mindirect-branch-register

H.J. Lu hjl.tools@gmail.com
Sun Jan 14 18:22:00 GMT 2018


On Sun, Jan 14, 2018 at 9:51 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
> -  (ior (and (not (match_test "TARGET_X32"))
> +  (ior (and (not (match_test "TARGET_X32
> +      || ix86_indirect_branch_thunk_register"))
>      (match_operand 0 "sibcall_memory_operand"))
> -       (and (match_test "TARGET_X32 && Pmode == DImode")
> +       (and (match_test "TARGET_X32 && Pmode == DImode
> + && !ix86_indirect_branch_thunk_register")
>      (match_operand 0 "GOT_memory_operand"))))
>
> Is this patch just trying to disable the predicate when
> ix86_indirect_branch_thunk_register is set? Because this is what this
> convoluted logic does.

Yes, we want to disable all indirect branch via memory with
-mindirect-branch-register, just like -mx32.   We could do

#idefine TARGET_INDIRECT_BRANCH_REGISTER \
 (TARGER_X32 ||  ix86_indirect_branch_thunk_register)

> While there is some sense for "TARGET_X32 && Pmode == DImode", we try
> to use RTX codes as much as possible in constraints.md and
> predicates.md.
>
> Uros.



-- 
H.J.



More information about the Gcc-patches mailing list