diff options
Diffstat (limited to 'gcc/config/i386/i386.md')
-rw-r--r-- | gcc/config/i386/i386.md | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index d20bbe431fa..a256d2ca93d 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -194,6 +194,9 @@ UNSPEC_BNDCU UNSPEC_BNDCN UNSPEC_MPX_FENCE + + ;; IRET support + UNSPEC_INTERRUPT_RETURN ]) (define_c_enum "unspecv" [ @@ -12434,6 +12437,14 @@ (set_attr "modrm" "0") (set_attr "maybe_prefix_bnd" "1")]) +(define_insn "interrupt_return" + [(simple_return) + (unspec [(const_int 0)] UNSPEC_INTERRUPT_RETURN)] + "reload_completed" +{ + return TARGET_64BIT ? "iretq" : "iret"; +}) + ;; Used by x86_machine_dependent_reorg to avoid penalty on single byte RET ;; instruction Athlon and K8 have. |