summaryrefslogtreecommitdiff
path: root/gcc/config/i386/i386.md
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/i386/i386.md')
-rw-r--r--gcc/config/i386/i386.md8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 3f587806407..a7573c468ae 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -12313,12 +12313,13 @@
{
if (TARGET_X32)
operands[0] = convert_memory_address (word_mode, operands[0]);
+ cfun->machine->has_local_indirect_jump = true;
})
(define_insn "*indirect_jump"
[(set (pc) (match_operand:W 0 "indirect_branch_operand" "rBw"))]
""
- "%!jmp\t%A0"
+ "* return ix86_output_indirect_jmp (operands[0], false);"
[(set_attr "type" "ibr")
(set_attr "length_immediate" "0")
(set_attr "maybe_prefix_bnd" "1")])
@@ -12362,13 +12363,14 @@
if (TARGET_X32)
operands[0] = convert_memory_address (word_mode, operands[0]);
+ cfun->machine->has_local_indirect_jump = true;
})
(define_insn "*tablejump_1"
[(set (pc) (match_operand:W 0 "indirect_branch_operand" "rBw"))
(use (label_ref (match_operand 1)))]
""
- "%!jmp\t%A0"
+ "* return ix86_output_indirect_jmp (operands[0], false);"
[(set_attr "type" "ibr")
(set_attr "length_immediate" "0")
(set_attr "maybe_prefix_bnd" "1")])
@@ -13097,7 +13099,7 @@
[(simple_return)
(use (match_operand 0 "register_operand" "r"))]
"reload_completed"
- "%!jmp\t%A0"
+ "* return ix86_output_indirect_jmp (operands[0], true);"
[(set_attr "type" "ibr")
(set_attr "length_immediate" "0")
(set_attr "maybe_prefix_bnd" "1")])