/// @file /// IPF specific SwitchStack() function /// /// Copyright (c) 2006 - 2012, 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. /// /// Module Name: SwitchStack.s /// /// .auto .text .proc AsmSwitchStackAndBackingStore .type AsmSwitchStackAndBackingStore, @function .regstk 5, 0, 0, 0 AsmSwitchStackAndBackingStore:: mov r14 = ar.rsc movl r2 = ~((((1 << 14) - 1) << 16) | 3) mov r17 = in1 mov r18 = in2 and r2 = r14, r2 flushrs mov ar.rsc = r2 mov sp = in3 mov r19 = in4 ld8.nt1 r16 = [in0], 8 ld8.nta gp = [in0] mov r3 = -1 loadrs mov ar.bspstore = r19 mov b7 = r16 alloc r2 = ar.pfs, 0, 0, 2, 0 mov out0 = r17 mov out1 = r18 mov ar.rnat = r3 mov ar.rsc = r14 br.call.sptk.many b0 = b7 .endp AsmSwitchStackAndBackingStore