diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2021-11-17 11:41:12 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2021-11-17 13:29:01 -0800 |
commit | 8e410de43ce039bbe08f1e0195e3b6ec24f68cae (patch) | |
tree | 02c7632c81adfbb02f39b6ed74c928f892922223 /gcc | |
parent | 425369bf3068a9f840d1c2f04a4d4c38e924d4dc (diff) | |
download | gcc-8e410de43ce039bbe08f1e0195e3b6ec24f68cae.zip gcc-8e410de43ce039bbe08f1e0195e3b6ec24f68cae.tar.gz gcc-8e410de43ce039bbe08f1e0195e3b6ec24f68cae.tar.bz2 |
x86: Remove "%!" before ret
Before MPX was removed, "%!" was mapped to
case '!':
if (ix86_bnd_prefixed_insn_p (current_output_insn))
fputs ("bnd ", file);
return;
After CET was added and MPX was removed, "%!" was mapped to
case '!':
if (ix86_notrack_prefixed_insn_p (current_output_insn))
fputs ("notrack ", file);
return;
ix86_notrack_prefixed_insn_p always returns false on ret since the
notrack prefix is only for indirect branches. Remove the unused "%!"
before ret.
PR target/103307
* config/i386/i386.c (ix86_code_end): Remove "%!" before ret.
(ix86_output_function_return): Likewise.
* config/i386/i386.md (simple_return_pop_internal): Likewise.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/i386/i386.c | 4 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index c9129ae..a5bfb9e 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -6115,7 +6115,7 @@ ix86_code_end (void) xops[0] = gen_rtx_REG (Pmode, regno); xops[1] = gen_rtx_MEM (Pmode, stack_pointer_rtx); output_asm_insn ("mov%z0\t{%1, %0|%0, %1}", xops); - output_asm_insn ("%!ret", NULL); + fputs ("\tret\n", asm_out_file); final_end_function (); init_insn_lengths (); free_after_compilation (cfun); @@ -16273,7 +16273,7 @@ ix86_output_function_return (bool long_p) } if (!long_p) - return "%!ret"; + return "ret"; return "rep%; ret"; } diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 73d15de..7b2de60 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -14705,7 +14705,7 @@ [(simple_return) (use (match_operand:SI 0 "const_int_operand"))] "reload_completed" - "%!ret\t%0" + "ret\t%0" "&& cfun->machine->function_return_type != indirect_branch_keep" [(const_int 0)] "ix86_split_simple_return_pop_internal (operands[0]); DONE;" |