+++ /dev/null
-//++\r
-// Copyright (c) 2006, Intel Corporation \r
-// All rights reserved. This program and the accompanying materials \r
-// are licensed and made available under the terms and conditions of the BSD License \r
-// which accompanies this distribution. The full text of the license may be found at \r
-// http://opensource.org/licenses/bsd-license.php \r
-// \r
-// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-// \r
-// Module Name:\r
-//\r
-// Cpu.s \r
-//\r
-// Abstract:\r
-//\r
-//\r
-// Revision History:\r
-//\r
-//--\r
-\r
- .file "Cpu.s"\r
- .radix D\r
- .section .text, "ax", "progbits"\r
- .align 32\r
- .section .pdata, "a", "progbits"\r
- .align 4\r
- .section .xdata, "a", "progbits"\r
- .align 8\r
- .section .data, "wa", "progbits"\r
- .align 16\r
- .section .rdata, "a", "progbits"\r
- .align 16\r
- .section .bss, "wa", "nobits"\r
- .align 16\r
- .section .tls$, "was", "progbits"\r
- .align 16\r
- .section .sdata, "was", "progbits"\r
- .align 16\r
- .section .sbss, "was", "nobits"\r
- .align 16\r
- .section .srdata, "as", "progbits"\r
- .align 16\r
- .section .rdata, "a", "progbits"\r
- .align 16\r
- .section .rtcode, "ax", "progbits"\r
- .align 32\r
- .type InvalidateInstructionCacheRange# ,@function \r
- .globl InvalidateInstructionCacheRange#\r
-// Function compile flags: /Ogsy\r
- .section .rtcode\r
-\r
-// Begin code for function: InvalidateInstructionCacheRange:\r
- .proc InvalidateInstructionCacheRange#\r
- .align 32\r
-InvalidateInstructionCacheRange: \r
-// File e:\tmp\pioflush.c\r
- { .mii //R-Addr: 0X00 \r
- alloc r3=2, 0, 0, 0 //11, 00000002H\r
- cmp4.leu p0,p6=32, r33;; //15, 00000020H\r
- (p6) mov r33=32;; //16, 00000020H\r
- }\r
- { .mii //R-Addr: 0X010 \r
- nop.m 0\r
- zxt4 r29=r33;; //21\r
- dep.z r30=r29, 0, 5;; //21, 00000005H\r
- }\r
- { .mii //R-Addr: 0X020 \r
- cmp4.eq p0,p7=r0, r30 //21\r
- shr.u r28=r29, 5;; //19, 00000005H\r
- (p7) adds r28=1, r28;; //22, 00000001H\r
- }\r
- { .mii //R-Addr: 0X030 \r
- nop.m 0\r
- shl r27=r28, 5;; //25, 00000005H\r
- zxt4 r26=r27;; //25\r
- }\r
- { .mfb //R-Addr: 0X040 \r
- add r31=r26, r32 //25\r
- nop.f 0\r
- nop.b 0\r
- }\r
-$L143:\r
- { .mii //R-Addr: 0X050 \r
- fc r32 //27\r
- adds r32=32, r32;; //28, 00000020H\r
- cmp.ltu p14,p15=r32, r31 //29\r
- }\r
- { .mfb //R-Addr: 0X060 \r
- nop.m 0\r
- nop.f 0\r
- (p14) br.cond.dptk.few $L143#;; //29, 880000/120000\r
- }\r
- { .mmi\r
- sync.i;;\r
- srlz.i\r
- nop.i 0;;\r
- }\r
- { .mfb //R-Addr: 0X070 \r
- nop.m 0\r
- nop.f 0\r
- br.ret.sptk.few b0;; //31\r
- }\r
-// End code for function:\r
- .endp InvalidateInstructionCacheRange#\r
-// END\r
+++ /dev/null
-/// @file\r
-/// Contains an implementation of CallPalProcStatic on Itanium-based\r
-/// architecture.\r
-///\r
-/// Copyright (c) 2006, Intel Corporation\r
-/// All rights reserved. This program and the accompanying materials\r
-/// are licensed and made available under the terms and conditions of the BSD License\r
-/// which accompanies this distribution. The full text of the license may be found at\r
-/// http://opensource.org/licenses/bsd-license.php\r
-///\r
-/// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-/// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-///\r
-/// Module Name: PalCallStatic.s\r
-///\r
-///\r
-\r
-.auto\r
-.text\r
-\r
-.proc PalCallStatic\r
-.type PalCallStatic, @function\r
-.regstk 5, 0, 0, 0\r
-PalCallStatic::\r
- cmp.eq p15 = in0, r0\r
- mov r31 = in4\r
- mov r8 = ip\r
-\r
-(p15) mov in0 = ar.k5\r
- add r8 = (_PalProcReturn - PalCallStatic), r8\r
- mov r30 = in3\r
-\r
- mov in4 = psr\r
- mov in3 = b0\r
- mov b7 = in0\r
-\r
- rsm 1 << 14 // Disable interrupts\r
- mov r29 = in2\r
- mov r28 = in1\r
-\r
- mov b0 = r8\r
- br.cond.sptk.many b7\r
-\r
-_PalProcReturn:\r
- mov psr.l = in4\r
- mov b0 = in3\r
- br.ret.sptk.many b0\r
-.endp PalCallStatic\r