mirror of https://github.com/ipxe/ipxe.git
[prefix] Call decompressor in flat real mode when DEBUG=libprefix is enabled
Allow the decompressor the option of generating debugging output via the BIOS console by calling it in flat real mode (rather than 16-bit protected mode) when libprefix.S is built with debugging enabled. Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/34/head
parent
9cdf68a219
commit
93178adb98
|
@ -394,8 +394,10 @@ process_bytes:
|
||||||
movw %ax, %fs
|
movw %ax, %fs
|
||||||
movw %ax, %gs
|
movw %ax, %gs
|
||||||
|
|
||||||
|
#ifdef NDEBUG
|
||||||
/* Call memcpy()-like function */
|
/* Call memcpy()-like function */
|
||||||
call *%bx
|
call *%bx
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Return to (flat) real mode */
|
/* Return to (flat) real mode */
|
||||||
movl %cr0, %eax
|
movl %cr0, %eax
|
||||||
|
@ -409,6 +411,20 @@ process_bytes:
|
||||||
popw %fs
|
popw %fs
|
||||||
popw %gs
|
popw %gs
|
||||||
|
|
||||||
|
#ifndef NDEBUG
|
||||||
|
/* Call memcpy()-like function in flat real mode (to allow for
|
||||||
|
* debug output via INT 10).
|
||||||
|
*/
|
||||||
|
pushw %ds
|
||||||
|
pushw %es
|
||||||
|
xorw %ax, %ax
|
||||||
|
movw %ax, %ds
|
||||||
|
movw %ax, %es
|
||||||
|
call *%bx
|
||||||
|
popw %es
|
||||||
|
popw %ds
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Restore GDT */
|
/* Restore GDT */
|
||||||
data32 lgdt -8(%bp)
|
data32 lgdt -8(%bp)
|
||||||
addw $( 8 /* saved GDT */ + ( PM_DS + 8 ) /* GDT on stack */ ), %sp
|
addw $( 8 /* saved GDT */ + ( PM_DS + 8 ) /* GDT on stack */ ), %sp
|
||||||
|
|
Loading…
Reference in New Issue