#------------------------------------------------------------------------------ #* #* Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> #* This program and the accompanying materials #* are licensed and made available under the terms and conditions of the BSD License #* which accompanies this distribution. The full text of the license may be found at #* http://opensource.org/licenses/bsd-license.php #* #* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, #* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. #* #* CpuAsm.S #* #* Abstract: #* #------------------------------------------------------------------------------ #.MMX #.XMM #------------------------------------------------------------------------------ # VOID # SetCodeSelector ( # UINT16 Selector # ); #------------------------------------------------------------------------------ ASM_GLOBAL ASM_PFX(SetCodeSelector) ASM_PFX(SetCodeSelector): movl 4(%esp), %ecx subl $0x10, %esp leal setCodeSelectorLongJump, %eax movl %eax, (%esp) movw %cx, 4(%esp) .byte 0xFF, 0x2C, 0x24 # jmp *(%esp) note:(FWORD jmp) setCodeSelectorLongJump: addl $0x10, %esp ret #------------------------------------------------------------------------------ # VOID # SetDataSelectors ( # UINT16 Selector # ); #------------------------------------------------------------------------------ ASM_GLOBAL ASM_PFX(SetDataSelectors) ASM_PFX(SetDataSelectors): movl 4(%esp), %ecx movw %cx, %ss movw %cx, %ds movw %cx, %es movw %cx, %fs movw %cx, %gs ret #END