/// @file
/// IPF specific control register reading functions
///
/// Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
/// This program and the accompanying materials
/// are licensed and made available under the terms and conditions of the BSD License
/// which accompanies this distribution. The full text of the license may be found at
///
/// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
/// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
///
///
///
//---------------------------------------------------------------------------------
//++
// AsmReadControlRegister
//
// Reads a 64-bit control register.
//
// Reads and returns the control register specified by Index.
// If Index is invalid then 0xFFFFFFFFFFFFFFFF is returned. This function is only available on IPF.
//
// Arguments :
//
// On Entry : The index of the control register to read.
//
// Return Value: The control register specified by Index.
//
//--
//----------------------------------------------------------------------------------
.text
.regstk 1, 0, 0, 0
//
// CRs are defined in the ranges 0-25 and 64-81 (with some holes).
// Compact this list by subtracting 32 from the top range.
// 0-25, 64-81 -> 0-25, 32-49
//
;;
;;
;;
;;
;;
//
// At this point the predicates contain a bit field of the
// CR desired. (The bit is the CR+1, since pr0 is always 1.)
//
// This is the translated (-32) range.
//
// Restore predicates and return.
//
.endp