i386: Move from explicit ADDR32/DATA32 prefixes to instruction suffixes.

Is more portable.
Binary is unchanged (verified).
This commit is contained in:
Vladimir Serbinenko 2015-02-21 17:13:23 +01:00
parent 065ad910f1
commit f571dc1af8
4 changed files with 9 additions and 9 deletions

View file

@ -95,7 +95,7 @@ LOCAL (codestart):
int $0x13 int $0x13
/* transition to protected mode */ /* transition to protected mode */
DATA32 call real_to_prot calll real_to_prot
/* The ".code32" directive takes GAS out of 16-bit mode. */ /* The ".code32" directive takes GAS out of 16-bit mode. */
.code32 .code32
@ -149,7 +149,7 @@ gate_a20_try_bios:
movw $0x2401, %ax movw $0x2401, %ax
int $0x15 int $0x15
DATA32 call real_to_prot calll real_to_prot
.code32 .code32
popl %ebp popl %ebp

View file

@ -48,7 +48,7 @@ VARIABLE(grub_core_entry_addr)
/* Transition to protected mode. We use pushl to force generation /* Transition to protected mode. We use pushl to force generation
of a flat return address. */ of a flat return address. */
pushl $1f pushl $1f
DATA32 jmp real_to_prot jmpl real_to_prot
.code32 .code32
/* Ensure A20 is enabled. We're in qemu, so control port A works /* Ensure A20 is enabled. We're in qemu, so control port A works
and there is no need to wait since there is no real logic, it's and there is no need to wait since there is no real logic, it's

View file

@ -135,7 +135,7 @@ LOCAL(prot_to_real_addr):
.macro REAL_TO_PROT .macro REAL_TO_PROT
movl LOCAL(real_to_prot_addr), %eax movl LOCAL(real_to_prot_addr), %eax
DATA32 call *%ax calll *%eax
.endm .endm
/* /*

View file

@ -54,7 +54,7 @@ protstack:
.endm .endm
.macro REAL_TO_PROT .macro REAL_TO_PROT
DATA32 call real_to_prot calll real_to_prot
.endm .endm
/* /*
@ -137,7 +137,7 @@ real_to_prot:
/* load the GDT register */ /* load the GDT register */
xorw %ax, %ax xorw %ax, %ax
movw %ax, %ds movw %ax, %ds
DATA32 ADDR32 lgdt gdtdesc ADDR32 lgdtl gdtdesc
/* turn on protected mode */ /* turn on protected mode */
movl %cr0, %eax movl %cr0, %eax
@ -145,7 +145,7 @@ real_to_prot:
movl %eax, %cr0 movl %eax, %cr0
/* jump to relocation, flush prefetch queue, and reload %cs */ /* jump to relocation, flush prefetch queue, and reload %cs */
DATA32 ljmp $GRUB_MEMORY_MACHINE_PROT_MODE_CSEG, $protcseg ljmpl $GRUB_MEMORY_MACHINE_PROT_MODE_CSEG, $protcseg
.code32 .code32
protcseg: protcseg:
@ -237,7 +237,7 @@ tmpcseg:
movl %eax, %cr0 movl %eax, %cr0
/* flush prefetch queue, reload %cs */ /* flush prefetch queue, reload %cs */
DATA32 ljmp $0, $realcseg ljmpl $0, $realcseg
realcseg: realcseg:
/* we are in real mode now /* we are in real mode now
@ -258,6 +258,6 @@ realcseg:
#endif #endif
/* return on new stack! */ /* return on new stack! */
DATA32 ret retl
.code32 .code32