On 05/11/19 19:07, Jim Mattson wrote: > On Mon, Nov 4, 2019 at 4:08 AM Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: >> >> On 01/11/19 21:33, Bill Wendling wrote: >>> Some of the code test sequences (e.g. push_es) clobber ES. That causes >>> trouble for future rep string instructions. So save and restore ES >>> around the test code sequence in exec_in_big_real_mode. >> >> You mean pop_es. Applied with that change. > > I think push_es and pop_es are both guilty of clobbering %es: > > MK_INSN(push_es, "mov $0x231, %bx\n\t" //Just write a dummy value to > see if it gets overwritten > "mov $0x123, %ax\n\t" > "mov %ax, %es\n\t" <======= Here > "push %es\n\t" > "pop %bx \n\t" > ); > > MK_INSN(pop_es, "push %ax\n\t" > "pop %es\n\t" <======== Here > "mov %es, %bx\n\t" > ); Intel vs AT&T always gets me... Paolo