Arjan van de Ven wrote: > On Tue, 2006-07-18 at 00:00 -0700, Chris Wright wrote: > >> +#ifndef CONFIG_XEN >> movl %cr0, %eax >> testl $0x4, %eax # EM (math emulation bit) >> - jne device_not_available_emulate >> - preempt_stop >> - call math_state_restore >> - jmp ret_from_exception >> -device_not_available_emulate: >> + je device_available_emulate >> pushl $0 # temporary storage for ORIG_EIP >> CFI_ADJUST_CFA_OFFSET 4 >> call math_emulate >> addl $4, %esp >> CFI_ADJUST_CFA_OFFSET -4 >> + jmp ret_from_exception >> +device_available_emulate: >> +#endif >> > > > Hi, > > can you explain what this chunk is for? It appears to be for the non-xen > case due to the ifndef, yet it seems to visibly change the code for > that... that deserves an explanation for sure ... > This inverts the logic of the test so that the lines: preempt_stop call math_state_restore jmp ret_from_exception can be hoisted out of the ifdef and shared in the Xen and non-Xen cases. J