aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/config/i386/i386.md
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/config/i386/i386.md')
-rw-r--r--gcc-4.9/gcc/config/i386/i386.md34
1 files changed, 7 insertions, 27 deletions
diff --git a/gcc-4.9/gcc/config/i386/i386.md b/gcc-4.9/gcc/config/i386/i386.md
index 2369e4b40..e32ba52a6 100644
--- a/gcc-4.9/gcc/config/i386/i386.md
+++ b/gcc-4.9/gcc/config/i386/i386.md
@@ -11142,12 +11142,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" "rw"))]
""
- "jmp\t%A0"
+ "* return ix86_output_indirect_jmp (operands[0], false);"
[(set_attr "type" "ibr")
(set_attr "length_immediate" "0")])
@@ -11190,13 +11191,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" "rw"))
(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")])
@@ -11583,18 +11585,7 @@
(define_insn "simple_return_internal"
[(simple_return)]
"reload_completed"
-{
- if (TARGET_64BIT && patch_functions_for_instrumentation)
- {
- /* Emit 10 nop bytes after ret. */
- if (ix86_output_function_nops_prologue_epilogue (asm_out_file,
- FUNCTION_PATCH_EPILOGUE_SECTION,
- "\tret",
- 10))
- return "";
- }
- return "ret";
-}
+ "* return ix86_output_function_return (false);"
[(set_attr "length" "1")
(set_attr "atom_unit" "jeu")
(set_attr "length_immediate" "0")
@@ -11607,18 +11598,7 @@
[(simple_return)
(unspec [(const_int 0)] UNSPEC_REP)]
"reload_completed"
-{
- if (TARGET_64BIT && patch_functions_for_instrumentation)
- {
- /* Emit 9 nop bytes after rep;ret. */
- if (ix86_output_function_nops_prologue_epilogue (asm_out_file,
- FUNCTION_PATCH_EPILOGUE_SECTION,
- "\trep\;ret",
- 9))
- return "";
- }
- return "rep\;ret";
-}
+ "* return ix86_output_function_return (true);"
[(set_attr "length" "2")
(set_attr "atom_unit" "jeu")
(set_attr "length_immediate" "0")
@@ -11639,7 +11619,7 @@
[(simple_return)
(use (match_operand:SI 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")])