1e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff/** @file
2e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  AsmReadMm0 function
3e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
4bb817c56c51fabe92915fe30b168b4833cb2aed9hhtian  Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
5bb817c56c51fabe92915fe30b168b4833cb2aed9hhtian  This program and the accompanying materials
6e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  are licensed and made available under the terms and conditions of the BSD License
7e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  which accompanies this distribution.  The full text of the license may be found at
8e4a34497b48b6721d9f08aa406919d09ef8754abMyronPorter  http://opensource.org/licenses/bsd-license.php.
9e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
10e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
13e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff**/
14e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
151efcc4ae46f52e3845923ffbab68426e068709d2vanjeff
16f734a10ab104f1072f94cab66a5489e0fd8fce8aAJFISH
17e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
1842eedea958591087603bbacd1c2227d2494026afyshang/**
1942eedea958591087603bbacd1c2227d2494026afyshang  Reads the current value of 64-bit MMX Register #0 (MM0).
2042eedea958591087603bbacd1c2227d2494026afyshang
2142eedea958591087603bbacd1c2227d2494026afyshang  Reads and returns the current value of MM0. This function is only available
22030cd1a2e95018683638462e9fcfa2d204aaff33qhuang  on IA-32 and x64.
2342eedea958591087603bbacd1c2227d2494026afyshang
2442eedea958591087603bbacd1c2227d2494026afyshang  @return The current value of MM0.
2542eedea958591087603bbacd1c2227d2494026afyshang
2642eedea958591087603bbacd1c2227d2494026afyshang**/
27e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeffUINT64
28e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeffEFIAPI
29e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeffAsmReadMm0 (
30e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  VOID
31e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  )
32e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff{
33e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  _asm {
34e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff    push    eax
35e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff    push    eax
36e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff    movq    [esp], mm0
37e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff    pop     eax
38e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff    pop     edx
39e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff    emms
40e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  }
41e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff}
42e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
43