arch/x86: remove .intel_syntax

Replace with the more familiar AT&T syntax.
Tested by sha1sum(1)ing the object files, and checking the objdump that
the code in question was actually compiled.

Change-Id: Ie85b8ee5dad1794864c18683427e32f055745221
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Reviewed-on: https://review.coreboot.org/13132
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martinroth@google.com>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Patrick Georgi
2016-01-22 12:26:52 +01:00
committed by Patrick Georgi
parent c7b2b7c67d
commit 0302b060b6
3 changed files with 46 additions and 54 deletions

View File

@ -400,29 +400,26 @@ _idt_end:
#ifdef __x86_64__
SetCodeSelector:
.intel_syntax noprefix
# save rsp because iret will align it to a 16 byte boundary
mov rdx, rsp
mov %rsp, %rdx
# use iret to jump to a 64-bit offset in a new code segment
# iret will pop cs:rip, flags, then ss:rsp
mov ax, ss # need to push ss..
push rax # push ss instuction not valid in x64 mode, so use ax
push rsp
mov %ss, %ax # need to push ss..
push %rax # push ss instuction not valid in x64 mode, so use ax
push %rsp
pushfq
push rcx # cx is code segment selector from caller
mov rax, offset setCodeSelectorLongJump
push rax
push %rcx # cx is code segment selector from caller
mov $setCodeSelectorLongJump, %rax
push %rax
# the iret will continue at next instruction, with the new cs value loaded
iretq
setCodeSelectorLongJump:
# restore rsp, it might not have been 16-byte aligned on entry
mov rsp, rdx
mov %rdx, %rsp
ret
.att_syntax prefix
.previous
.code64