Added efi64.S file for X64 and reviewed efi32.S file.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7887 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
gikidy
2009-03-16 07:56:33 +00:00
parent 319075ff6e
commit 3bd0ef806e
2 changed files with 790 additions and 4 deletions

View File

@@ -30,7 +30,7 @@
# be done to maintain the consistency of the size
# of entry points...
.byte 0xe9 # jmp 16 bit relative
.long commonIdtEntry - . - 4 # A problem
.long commonIdtEntry - . - 4 # offset to jump to
.endm
Start:
@@ -53,7 +53,7 @@ Start:
movl (Idtr + 2), %esi
movl (%esi), %edi
LOOP_1: # loop through all IDT entries exception handlers and initialize to default handler
LOOP_1: # loop through all IDT entries exception handlers and initialize to default handler
movw %bx, (%edi) # write bits 15..0 of offset
movw $0x20, 2(%edi) # SYS_CODE_SEL from GDT
movw $(0x0e00 | 0x8000), 4(%edi) # type = 386 interrupt gate, present
@@ -136,9 +136,9 @@ SectionLoop:
cmpw $0, %bx
jne SectionLoop
movzwl (Idtr), %eax # get size of IDT
movzwl (Idtr), %eax # get size of IDT
incl %eax
addl (Idtr + 2), %eax # add to base of IDT to get location of memory map...
addl (Idtr + 2), %eax # add to base of IDT to get location of memory map...
pushl %eax # push memory map location on stack for call to EFILDR...
pushl %eax # push return address (useless, just for stack balance)