ReadMm0.c revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/** @file
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster AsmReadMm0 function
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster This program and the accompanying materials
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster are licensed and made available under the terms and conditions of the BSD License
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster which accompanies this distribution. The full text of the license may be found at
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster http://opensource.org/licenses/bsd-license.php.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster**/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/**
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Reads the current value of 64-bit MMX Register #0 (MM0).
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster Reads and returns the current value of MM0. This function is only available
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster on IA-32 and x64.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster @return The current value of MM0.
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster**/
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterUINT64
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterEFIAPI
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan FosterAsmReadMm0 (
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster VOID
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster )
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster{
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster _asm {
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster push eax
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster push eax
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster movq [esp], mm0
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster pop eax
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster pop edx
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster emms
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster }
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster}
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster