From 0302b060b6e4751e4968ce46bf5cdaddfa15911b Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Fri, 22 Jan 2016 12:26:52 +0100 Subject: 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 Reviewed-on: https://review.coreboot.org/13132 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth Reviewed-by: Stefan Reinauer --- src/arch/x86/c_start.S | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'src/arch/x86/c_start.S') diff --git a/src/arch/x86/c_start.S b/src/arch/x86/c_start.S index 124bfa84bf..65ab0be042 100644 --- a/src/arch/x86/c_start.S +++ b/src/arch/x86/c_start.S @@ -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 -- cgit v1.2.3