windows-nt/Source/XPSP1/NT/base/hals/halia64/ia64/i64prfls.s
2020-09-26 16:20:57 +08:00

96 lines
2 KiB
ArmAsm
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//++
// TITLE ("Performance Monitor Control & Data Register Accesses")
//
//
//
// Copyright (c) 1995 Intel Corporation
//
// Module Name:
//
// i64prfls.s
//
// Abstract:
//
// This module implements Profiling.
//
// Author:
//
// Bernard Lint, M. Jayakumar 1 Sep '99
//
// Environment:
//
// Kernel mode
//
// Revision History:
//
//--
#include "ksia64.h"
.file "i64prfls.s"
//
// The following functions are defined until the compiler supports
// the intrinsics __setReg() and __getReg() for the CV_IA64_PFCx,
// CV_IA64_PFDx and CV_IA64_SaPMV registers.
// Anyway, these functions might stay for a while, the compiler
// having no consideration for micro-architecture specific
// number of PMCs/PMDs.
//
LEAF_ENTRY(HalpReadPerfMonVectorReg)
LEAF_SETUP(0,0,0,0)
mov v0 = cr.pmv
;;
LEAF_RETURN
LEAF_EXIT(HalpReadPerfMonVectorReg)
LEAF_ENTRY(HalpWritePerfMonVectorReg)
LEAF_SETUP(1,0,0,0)
mov cr.pmv = a0
;;
LEAF_RETURN
LEAF_EXIT(HalpWritePerfMonVectorReg)
LEAF_ENTRY(HalpWritePerfMonCnfgReg)
LEAF_SETUP(2,0,0,0)
rPMC = t15
mov rPMC = a0
;;
mov pmc[rPMC] = a1
;;
LEAF_RETURN
LEAF_EXIT(HalpWritePerfMonCnfgReg)
LEAF_ENTRY(HalpReadPerfMonCnfgReg)
LEAF_SETUP(1,0,0,0)
rPMC = t15
mov rPMC = a0
;;
mov v0 = pmc[rPMC]
;;
LEAF_RETURN
LEAF_EXIT(HalpReadPerfMonCnfgReg)
LEAF_ENTRY(HalpWritePerfMonDataReg)
LEAF_SETUP(2,0,0,0)
rPMD = t15
mov rPMD = a0
;;
mov pmd[rPMD] = a1
;;
LEAF_RETURN
LEAF_EXIT(HalpWritePerfMonDataReg)
LEAF_ENTRY(HalpReadPerfMonDataReg)
LEAF_SETUP(1,0,0,0)
rPMD = t15
mov rPMD = a0
;;
mov v0 = pmd[rPMD]
;;
LEAF_RETURN
LEAF_EXIT(HalpReadPerfMonDataReg)