[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