summaryrefslogtreecommitdiff
path: root/gcc/config/i386/i386.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/i386/i386.c')
-rw-r--r--gcc/config/i386/i386.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index ac4d1f62f50..f327a6b1b62 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -10753,8 +10753,23 @@ output_indirect_thunk (bool need_bnd_p, int regno)
ASM_OUTPUT_INTERNAL_LABEL (asm_out_file, indirectlabel1);
- /* lfence . */
- fprintf (asm_out_file, "\tlfence\n");
+ switch (ix86_indirect_branch_loop)
+ {
+ case indirect_branch_loop_lfence:
+ /* lfence. */
+ fprintf (asm_out_file, "\tlfence\n");
+ break;
+ case indirect_branch_loop_pause:
+ /* pause. */
+ fprintf (asm_out_file, "\tpause\n");
+ break;
+ case indirect_branch_loop_nop:
+ /* nop. */
+ fprintf (asm_out_file, "\tnop\n");
+ break;
+ default:
+ gcc_unreachable ();
+ }
/* Jump. */
fputs ("\tjmp\t", asm_out_file);