1/// @file 2/// Contains an implementation of CallPalProcStacked on Itanium-based 3/// architecture. 4/// 5/// Copyright (c) 2008, Intel Corporation. All rights reserved.<BR> 6/// This program and the accompanying materials 7/// are licensed and made available under the terms and conditions of the BSD License 8/// which accompanies this distribution. The full text of the license may be found at 9/// http://opensource.org/licenses/bsd-license.php. 10/// 11/// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12/// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13/// 14/// Module Name: AsmCpuMisc.s 15/// 16/// 17 18 19.text 20.proc CpuBreakpoint 21.type CpuBreakpoint, @function 22 23CpuBreakpoint:: 24 break.i 0;; 25 br.ret.dpnt b0;; 26 27.endp CpuBreakpoint 28 29.proc MemoryFence 30.type MemoryFence, @function 31 32MemoryFence:: 33 mf;; // memory access ordering 34 35 // do we need the mf.a also here? 36 mf.a // wait for any IO to complete? 37 38 // not sure if we need serialization here, just put it, in case... 39 40 srlz.d;; 41 srlz.i;; 42 43 br.ret.dpnt b0;; 44.endp MemoryFence 45 46.proc DisableInterrupts 47.type DisableInterrupts, @function 48 49DisableInterrupts:: 50 rsm 0x4000 51 srlz.d;; 52 br.ret.dpnt b0;; 53 54.endp DisableInterrupts 55 56.proc EnableInterrupts 57.type EnableInterrupts, @function 58 59EnableInterrupts:: 60 ssm 0x4000 61 srlz.d;; 62 br.ret.dpnt b0;; 63 64.endp EnableInterrupts 65 66.proc EnableDisableInterrupts 67.type EnableDisableInterrupts, @function 68 69EnableDisableInterrupts:: 70 ssm 0x4000 71 srlz.d;; 72 srlz.i;; 73 rsm 0x4000 74 srlz.d;; 75 76 br.ret.dpnt b0;; 77 78.endp EnableDisableInterrupts 79 80