mirror of
https://github.com/ipxe/ipxe
synced 2025-12-12 14:32:49 +03:00
Use internal real-mode stack from non-returnable prefixes
This commit is contained in:
13
src/arch/i386/core/stack16.S
Normal file
13
src/arch/i386/core/stack16.S
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
.arch i386
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Internal stack
|
||||||
|
****************************************************************************
|
||||||
|
*/
|
||||||
|
.section ".stack16"
|
||||||
|
.align 8
|
||||||
|
.globl _stack16
|
||||||
|
_stack16:
|
||||||
|
.space 4096
|
||||||
|
.globl _estack16
|
||||||
|
_estack16:
|
||||||
@@ -350,6 +350,10 @@ msg1end:
|
|||||||
start_runtime:
|
start_runtime:
|
||||||
call install
|
call install
|
||||||
|
|
||||||
|
/* Set up real-mode stack */
|
||||||
|
movw %bx, %ss
|
||||||
|
movw $_estack16, %sp
|
||||||
|
|
||||||
/* Jump to .text16 segment */
|
/* Jump to .text16 segment */
|
||||||
pushw %ax
|
pushw %ax
|
||||||
pushw $1f
|
pushw $1f
|
||||||
|
|||||||
@@ -139,6 +139,10 @@ exec_vector:
|
|||||||
|
|
||||||
call install
|
call install
|
||||||
|
|
||||||
|
/* Set up real-mode stack */
|
||||||
|
movw %bx, %ss
|
||||||
|
movw $_estack16, %sp
|
||||||
|
|
||||||
/* Jump to .text16 segment */
|
/* Jump to .text16 segment */
|
||||||
pushw %ax
|
pushw %ax
|
||||||
pushw $1f
|
pushw $1f
|
||||||
|
|||||||
Reference in New Issue
Block a user