1/// @file 2/// IPF specific Performance Monitor Configuration/Data Registers accessing functions 3/// 4/// Copyright (c) 2006, Intel Corporation. All rights reserved.<BR> 5/// This program and the accompanying materials 6/// are licensed and made available under the terms and conditions of the BSD License 7/// which accompanies this distribution. The full text of the license may be found at 8/// http://opensource.org/licenses/bsd-license.php. 9/// 10/// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11/// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12/// 13/// Module Name: AccessPmr.s 14/// 15/// 16 17//--------------------------------------------------------------------------------- 18//++ 19// AsmReadPmc 20// 21// This routine is used to Reads the current value of Performance Monitor Configuration Register (PMC). 22// 23// Arguments : 24// 25// On Entry : The 8-bit PMC index. 26// 27// Return Value: The current value of PMC by Index. 28// 29//-- 30//---------------------------------------------------------------------------------- 31.text 32.type AsmReadPmc, @function 33.proc AsmReadPmc 34.regstk 1, 0, 0, 0 35 36AsmReadPmc:: 37 srlz.i;; 38 srlz.d;; 39 mov r8 = pmc[in0];; 40 br.ret.dpnt b0;; 41.endp AsmReadPmc 42 43//--------------------------------------------------------------------------------- 44//++ 45// AsmWritePmc 46// 47// This routine is used to write the current value to a Performance Monitor Configuration Register (PMC). 48// 49// Arguments : 50// 51// On Entry : The 8-bit PMC index. 52// The value should be written to PMC 53// 54// Return Value: The value written to PMC. 55// 56//-- 57//---------------------------------------------------------------------------------- 58.text 59.type AsmWritePmc, @function 60.proc AsmWritePmc 61.regstk 2, 0, 0, 0 62 63AsmWritePmc:: 64 mov pmc[in0] = in1 65 mov r8 = in1;; 66 srlz.i;; 67 srlz.d;; 68 br.ret.dpnt b0;; 69.endp AsmWritePmc 70 71 72//--------------------------------------------------------------------------------- 73//++ 74// AsmReadPmd 75// 76// This routine is used to Reads the current value of Performance Monitor Data Register (PMD). 77// 78// Arguments : 79// 80// On Entry : The 8-bit PMD index. 81// 82// Return Value: The current value of PMD by Index. 83// 84//-- 85//---------------------------------------------------------------------------------- 86.text 87.type AsmReadPmd, @function 88.proc AsmReadPmd 89.regstk 1, 0, 0, 0 90 91AsmReadPmd:: 92 srlz.i;; 93 srlz.d;; 94 mov r8 = pmd[in0];; 95 br.ret.dpnt b0;; 96.endp AsmReadPmd 97 98//--------------------------------------------------------------------------------- 99//++ 100// AsmWritePmd 101// 102// This routine is used to write the current value to Performance Monitor Data Register (PMD). 103// 104// Arguments : 105// 106// On Entry : The 8-bit PMD index. 107// The value should be written to PMD 108// 109// Return Value: The value written to PMD. 110// 111//-- 112//---------------------------------------------------------------------------------- 113.text 114.type AsmWritePmd, @function 115.proc AsmWritePmd 116.regstk 2, 0, 0, 0 117 118AsmWritePmd:: 119 mov pmd[in0] = in1 120 mov r8 = in1;; 121 srlz.i;; 122 srlz.d;; 123 br.ret.dpnt b0;; 124.endp AsmWritePmd 125