# HG changeset patch # User Kelly Wilson # Date 1250538139 21600 # Node ID 3a08f5e2553b6ac5911c5b44be801198798c990a # Parent 30bdcfb8299eef99347a04adc120bf930fdb2c11 Fixed iretq problem reported by wilkie of the XomB project diff -r 30bdcfb8299e -r 3a08f5e2553b gen/asm-x86-64.h --- a/gen/asm-x86-64.h Fri Aug 14 01:43:30 2009 +0200 +++ b/gen/asm-x86-64.h Mon Aug 17 13:42:19 2009 -0600 @@ -330,6 +330,7 @@ Op_insX, Op_iret, Op_iretd, + Op_iretq, Op_lods, Op_lodsX, Op_movs, @@ -434,6 +435,7 @@ Mn_fsetpm, Mn_iretw, Mn_iret, + Mn_iretq, Mn_lret, Mn_cmpxchg8b, N_AltMn @@ -446,6 +448,7 @@ ".byte 0xdb, 0xe4", "iretw", "iret", + "iretq", "lret", "cmpxchg8b" }; @@ -575,6 +578,7 @@ /* Op_insX */ { 0, 0, 0, 0, Clb_DI }, // output segment overrides %% needs work /* Op_iret */ { 0,0,0, 0, 0, Out_Mnemonic, Mn_iretw }, /* Op_iretd */ { 0,0,0, 0, 0, Out_Mnemonic, Mn_iret }, + /* Op_iretq */ { 0,0,0, 0, 0, Out_Mnemonic, Mn_iretq }, /* Op_lods */ { mem, 0, 0, 1, Clb_SI }, /* Op_lodsX */ { 0, 0, 0, 0, Clb_SI }, /* Op_movs */ { mem, mem, 0, 1, Clb_DI|Clb_SI }, // only src/DS can be overridden