support both of binutils 2.9.1.0.x and 2.9.5.0.x

This commit is contained in:
okuji committed 1999-08-05 09:42:15 +00:00
1 parent 0623b3f394
commit ce03b57275
6 files changed
+156 -55

No files matched your search

+39 -39
View File
@@ -95,13 +95,13 @@ codestart:
sti /* we're safe again */
/* save boot drive reference */
addr32 movb %dl, EXT_C(boot_drive)
ADDR32 movb %dl, EXT_C(boot_drive)
/* reset disk system (%ah = 0) */
int $0x13
/* transition to protected mode */
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
/* The ".code32" directive takes GAS out of 16-bit mode. */
.code32
@@ -170,7 +170,7 @@ ENTRY(chain_stage1)
call EXT_C(prot_to_real)
.code16
data32 addr32 ljmp (offset)
DATA32 ADDR32 ljmp (offset)
.code32
#endif /* STAGE1_5 */
@@ -209,7 +209,7 @@ ENTRY(chain_stage2)
call EXT_C(prot_to_real)
.code16
data32 addr32 ljmp (offset)
DATA32 ADDR32 ljmp (offset)
.code32
@@ -225,7 +225,7 @@ ENTRY(real_to_prot)
cli
/* load the GDT register */
data32 addr32 lgdt gdtdesc
DATA32 ADDR32 lgdt gdtdesc
/* turn on protected mode */
movl %cr0, %eax
@@ -233,7 +233,7 @@ ENTRY(real_to_prot)
movl %eax, %cr0
/* jump to relocation, flush prefetch queue, and reload %cs */
data32 ljmp $PROT_MODE_CSEG, $protcseg
DATA32 ljmp $PROT_MODE_CSEG, $protcseg
/*
* The ".code32" directive only works in GAS, the GNU assembler!
@@ -307,7 +307,7 @@ tmpcseg:
movl %eax, %cr0
/* flush prefetch queue, reload %cs */
data32 ljmp $0, $realcseg
DATA32 ljmp $0, $realcseg
realcseg:
/* we are in real mode now
@@ -326,7 +326,7 @@ realcseg:
sti
/* return on new stack! */
data32 ret
DATA32 ret
.code32
@@ -370,7 +370,7 @@ ENTRY(biosdisk_int13_extensions)
xorw %ax, %ax
movw %ax, %ds
/* back to protected mode */
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
movb %dl, %al /* return value in %eax */
@@ -442,7 +442,7 @@ ENTRY(biosdisk_standard)
jmp 1b /* retry */
2:
/* back to protected mode */
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
movb %bl, %al /* return value in %eax */
@@ -495,7 +495,7 @@ ENTRY(check_int13_extensions)
xorb %bl, %bl
2:
/* back to protected mode */
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
movb %bl, %al /* return value in %eax */
@@ -543,7 +543,7 @@ ENTRY(get_diskinfo_int13_extensions)
xorw %ax, %ax
movw %ax, %ds
/* back to protected mode */
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
movb %bl, %al /* return value in %eax */
@@ -592,7 +592,7 @@ ENTRY(get_diskinfo_standard)
1:
movb %ah, %bl /* save return value in %bl */
/* back to protected mode */
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
/* restore %ebp */
@@ -687,7 +687,7 @@ probe_values:
2:
/* back to protected mode */
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
/* restore %ebp */
@@ -758,7 +758,7 @@ pc_notnewline:
movw $1, %bx
int $0x10
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
pop %ebx
@@ -796,10 +796,10 @@ ENTRY(get_memsize)
.code16
cmpb $0x1, %bl
data32 je xext
DATA32 je xext
int $0x12
data32 jmp xdone
DATA32 jmp xdone
xext:
movb $0x88, %ah
@@ -808,7 +808,7 @@ xext:
xdone:
movw %ax, %bx
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
movw %bx, %ax
@@ -845,7 +845,7 @@ ENTRY(get_eisamemsize)
shll $16, %ebx
movw %ax, %bx
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
movl $0xFFFFFFFF, %eax
@@ -906,24 +906,24 @@ ENTRY(get_mmap_entry)
movl $0xe820, %eax
int $0x15
data32 jc xnosmap
DATA32 jc xnosmap
cmpl $0x534d4150, %eax
data32 jne xnosmap
DATA32 jne xnosmap
cmpl $0x14, %ecx
data32 jl xnosmap
DATA32 jl xnosmap
cmpl $0x400, %ecx
data32 jg xnosmap
DATA32 jg xnosmap
data32 jmp xsmap
DATA32 jmp xsmap
xnosmap:
movl $0, %ecx
xsmap:
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
/* write length of buffer (zero if error) into "addr" */
@@ -1001,10 +1001,10 @@ ENTRY(patch_code) /* labels start with "pc_" */
mov %ax, %es
mov %ax, %fs
mov %ax, %gs
addr32 movl $0, 0
ADDR32 movl $0, 0
pc_stop:
hlt
data32 jmp pc_stop
DATA32 jmp pc_stop
ENTRY(patch_code_end)
.code32
@@ -1054,7 +1054,7 @@ ENTRY(big_linux_boot)
movw %ax, %ss
/* jump to start */
data32 addr32 ljmp (offset)
DATA32 ADDR32 ljmp (offset)
.code32
@@ -1103,7 +1103,7 @@ ENTRY(cls)
xorb %ah, %ah
int $0x10 /* Set Video mode (clears screen) */
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
pop %ebx
@@ -1133,7 +1133,7 @@ ENTRY(nocursor)
movb $0x1, %ah
int $0x10
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
pop %edx
@@ -1168,7 +1168,7 @@ ENTRY(getxy)
movb $0x3, %ah
int $0x10 /* get cursor position */
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
movb %dl, %ah
@@ -1207,7 +1207,7 @@ ENTRY(gotoxy)
movb $0x2, %ah
int $0x10 /* set cursor position */
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
pop %edx
@@ -1271,7 +1271,7 @@ ENTRY(set_attrib)
movw $1, %cx
int $0x10
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
pop %ecx
@@ -1310,11 +1310,11 @@ ENTRY(getrtsecs)
movb $0x2, %ah
int $0x1a
data32 jnc gottime
DATA32 jnc gottime
movb $0xff, %dh
gottime:
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
movb %dh, %al
@@ -1344,7 +1344,7 @@ ENTRY(getkey)
movw %ax, %bx /* real_to_prot uses %eax */
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
movw %bx, %ax
@@ -1379,15 +1379,15 @@ ENTRY(checkkey)
movb $0x1, %ah
int $0x16
data32 jz notpending
DATA32 jz notpending
movw %ax, %bx
data32 jmp pending
DATA32 jmp pending
notpending:
movl $0xFFFFFFFF, %ebx
pending:
data32 call EXT_C(real_to_prot)
DATA32 call EXT_C(real_to_prot)
.code32
mov %ebx, %eax