int $0x13
/* transition to protected mode */
- DATA32 call real_to_prot
+ calll real_to_prot
/* The ".code32" directive takes GAS out of 16-bit mode. */
.code32
movw $0x2401, %ax
int $0x15
- DATA32 call real_to_prot
+ calll real_to_prot
.code32
popl %ebp
/* Transition to protected mode. We use pushl to force generation
of a flat return address. */
pushl $1f
- DATA32 jmp real_to_prot
+ jmpl real_to_prot
.code32
/* 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
.endm
.macro REAL_TO_PROT
- DATA32 call real_to_prot
+ calll real_to_prot
.endm
/*
/* load the GDT register */
xorw %ax, %ax
movw %ax, %ds
- DATA32 ADDR32 lgdt gdtdesc
+ ADDR32 lgdtl gdtdesc
/* turn on protected mode */
movl %cr0, %eax
movl %eax, %cr0
/* 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
protcseg:
movl %eax, %cr0
/* flush prefetch queue, reload %cs */
- DATA32 ljmp $0, $realcseg
+ ljmpl $0, $realcseg
realcseg:
/* we are in real mode now
#endif
/* return on new stack! */
- DATA32 ret
+ retl
.code32