2009-08-13 Pavel Roskin <proski@gnu.org>
* boot/i386/pc/boot.S: Remove ABS macro, it's not required by any modern compilers we support.
This commit is contained in:
parent
1f9e557e39
commit
9ca6284331
2 changed files with 12 additions and 14 deletions
|
@ -1,5 +1,8 @@
|
||||||
2009-08-13 Pavel Roskin <proski@gnu.org>
|
2009-08-13 Pavel Roskin <proski@gnu.org>
|
||||||
|
|
||||||
|
* boot/i386/pc/boot.S: Remove ABS macro, it's not required by
|
||||||
|
any modern compilers we support.
|
||||||
|
|
||||||
* boot/i386/pc/boot.S: Remove all code dependent on APPLE_CC.
|
* boot/i386/pc/boot.S: Remove all code dependent on APPLE_CC.
|
||||||
Use local labels starting with "L_" so that Apple assembler
|
Use local labels starting with "L_" so that Apple assembler
|
||||||
knows they are local.
|
knows they are local.
|
||||||
|
|
|
@ -24,13 +24,8 @@
|
||||||
* defines for the code go here
|
* defines for the code go here
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Absolute addresses
|
|
||||||
This makes the assembler generate the address without support
|
|
||||||
from the linker. (ELF can't relocate 16-bit addresses!) */
|
|
||||||
#define ABS(x) (x-_start+0x7c00)
|
|
||||||
|
|
||||||
/* Print message string */
|
/* Print message string */
|
||||||
#define MSG(x) movw $ABS(x), %si; call L_message
|
#define MSG(x) movw $x, %si; call L_message
|
||||||
|
|
||||||
.file "boot.S"
|
.file "boot.S"
|
||||||
|
|
||||||
|
@ -125,7 +120,7 @@ boot_drive_check:
|
||||||
* ljmp to the next instruction because some bogus BIOSes
|
* ljmp to the next instruction because some bogus BIOSes
|
||||||
* jump to 07C0:0000 instead of 0000:7C00.
|
* jump to 07C0:0000 instead of 0000:7C00.
|
||||||
*/
|
*/
|
||||||
ljmp $0, $ABS(real_start)
|
ljmp $0, $real_start
|
||||||
|
|
||||||
real_start:
|
real_start:
|
||||||
|
|
||||||
|
@ -142,7 +137,7 @@ real_start:
|
||||||
/*
|
/*
|
||||||
* Check if we have a forced disk reference here
|
* Check if we have a forced disk reference here
|
||||||
*/
|
*/
|
||||||
movb ABS(boot_drive), %al
|
movb boot_drive, %al
|
||||||
cmpb $0xff, %al
|
cmpb $0xff, %al
|
||||||
je 1f
|
je 1f
|
||||||
movb %al, %dl
|
movb %al, %dl
|
||||||
|
@ -154,7 +149,7 @@ real_start:
|
||||||
MSG(notification_string)
|
MSG(notification_string)
|
||||||
|
|
||||||
/* set %si to the disk address packet */
|
/* set %si to the disk address packet */
|
||||||
movw $ABS(disk_address_packet), %si
|
movw $disk_address_packet, %si
|
||||||
|
|
||||||
/* do not probe LBA if the drive is a floppy */
|
/* do not probe LBA if the drive is a floppy */
|
||||||
testb $GRUB_BOOT_MACHINE_BIOS_HD_FLAG, %dl
|
testb $GRUB_BOOT_MACHINE_BIOS_HD_FLAG, %dl
|
||||||
|
@ -195,9 +190,9 @@ lba_mode:
|
||||||
movw $0x0010, (%si)
|
movw $0x0010, (%si)
|
||||||
|
|
||||||
/* the absolute address */
|
/* the absolute address */
|
||||||
movl ABS(kernel_sector), %ebx
|
movl kernel_sector, %ebx
|
||||||
movl %ebx, 8(%si)
|
movl %ebx, 8(%si)
|
||||||
movl ABS(kernel_sector + 4), %ebx
|
movl kernel_sector + 4, %ebx
|
||||||
movl %ebx, 12(%si)
|
movl %ebx, 12(%si)
|
||||||
|
|
||||||
/* the segment of buffer address */
|
/* the segment of buffer address */
|
||||||
|
@ -265,13 +260,13 @@ L_final_init:
|
||||||
|
|
||||||
setup_sectors:
|
setup_sectors:
|
||||||
/* load logical sector start (top half) */
|
/* load logical sector start (top half) */
|
||||||
movl ABS(kernel_sector + 4), %eax
|
movl kernel_sector + 4, %eax
|
||||||
|
|
||||||
orl %eax, %eax
|
orl %eax, %eax
|
||||||
jnz L_geometry_error
|
jnz L_geometry_error
|
||||||
|
|
||||||
/* load logical sector start (bottom half) */
|
/* load logical sector start (bottom half) */
|
||||||
movl ABS(kernel_sector), %eax
|
movl kernel_sector, %eax
|
||||||
|
|
||||||
/* zero %edx */
|
/* zero %edx */
|
||||||
xorl %edx, %edx
|
xorl %edx, %edx
|
||||||
|
@ -442,7 +437,7 @@ L_floppy_probe:
|
||||||
* Perform floppy probe.
|
* Perform floppy probe.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
movw $ABS(probe_values-1), %si
|
movw $probe_values - 1, %si
|
||||||
|
|
||||||
L_probe_loop:
|
L_probe_loop:
|
||||||
/* reset floppy controller INT 13h AH=0 */
|
/* reset floppy controller INT 13h AH=0 */
|
||||||
|
|
Loading…
Reference in a new issue