1 //++ 2 // Copyright (c) 2004, Intel Corporation. All rights reserved.<BR> 3 // This program and the accompanying materials 4 // are licensed and made available under the terms and conditions of the BSD License 5 // which accompanies this distribution. The full text of the license may be found at 6 // http://opensource.org/licenses/bsd-license.php 7 // 8 // THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 9 // WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 10 // 11 // Module Name: 12 // 13 // PerformancePrimitives.s 14 // 15 // Abstract: 16 // 17 // 18 // Revision History: 19 // 20 //-- 21 22 .file "PerformancePrimitives.s" 23 24 #include "IpfMacro.i" 25 26 //----------------------------------------------------------------------------- 27 //++ 28 // GetTimerValue 29 // 30 // Implementation of CPU-based time service 31 // 32 // On Entry : 33 // EFI_STATUS 34 // GetTimerValue ( 35 // OUT UINT64 *TimerValue 36 // ) 37 // 38 // Return Value: 39 // r8 = Status 40 // r9 = 0 41 // r10 = 0 42 // r11 = 0 43 // 44 // As per static calling conventions. 45 // 46 //-- 47 //--------------------------------------------------------------------------- 48 PROCEDURE_ENTRY (GetTimerValue) 49 50 NESTED_SETUP (1,8,0,0) 51 mov r8 = ar.itc;; 52 st8 [r32]= r8 53 mov r8 = r0 54 mov r9 = r0 55 mov r10 = r0 56 mov r11 = r0 57 NESTED_RETURN 58 59 PROCEDURE_EXIT (GetTimerValue) 60 //--------------------------------------------------------------------------- 61 62