VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/Firmware/OvmfPkg/Include/IndustryStandard/InstructionParsing.h

最後變更 在這個檔案是 99404,由 vboxsync 提交於 2 年 前

Devices/EFI/FirmwareNew: Update to edk2-stable202302 and make it build, bugref:4643

  • 屬性 svn:eol-style 設為 native
檔案大小: 1.5 KB
 
1/** @file
2 Instruction parsing support definitions.
3
4 Copyright (C) 2020, Advanced Micro Devices, Inc. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7**/
8
9#ifndef __INSTRUCTION_PARSING_H__
10#define __INSTRUCTION_PARSING_H__
11
12#include <Base.h>
13#include <Uefi.h>
14
15//
16// Instruction REX prefix definition
17//
18typedef union {
19 struct {
20 UINT8 BitB : 1;
21 UINT8 BitX : 1;
22 UINT8 BitR : 1;
23 UINT8 BitW : 1;
24 UINT8 Rex : 4;
25 } Bits;
26
27 UINT8 Uint8;
28} INSTRUCTION_REX_PREFIX;
29
30//
31// Instruction ModRM definition
32//
33typedef union {
34 struct {
35 UINT8 Rm : 3;
36 UINT8 Reg : 3;
37 UINT8 Mod : 2;
38 } Bits;
39
40 UINT8 Uint8;
41} INSTRUCTION_MODRM;
42
43//
44// Instruction SIB definition
45//
46typedef union {
47 struct {
48 UINT8 Base : 3;
49 UINT8 Index : 3;
50 UINT8 Scale : 2;
51 } Bits;
52
53 UINT8 Uint8;
54} INSTRUCTION_SIB;
55
56//
57// Legacy Instruction Prefixes
58//
59#define OVERRIDE_SEGMENT_CS 0x2E
60#define OVERRIDE_SEGMENT_DS 0x3E
61#define OVERRIDE_SEGMENT_ES 0x26
62#define OVERRIDE_SEGMENT_SS 0x36
63#define OVERRIDE_SEGMENT_FS 0x64
64#define OVERRIDE_SEGMENT_GS 0x65
65#define OVERRIDE_OPERAND_SIZE 0x66
66#define OVERRIDE_ADDRESS_SIZE 0x67
67#define LOCK_PREFIX 0xF0
68#define REPNZ_PREFIX 0xF2
69#define REPZ_PREFIX 0xF3
70
71//
72// REX Prefixes
73//
74#define REX_PREFIX_START 0x40
75#define REX_PREFIX_STOP 0x4F
76#define REX_64BIT_OPERAND_SIZE_MASK 0x08
77
78//
79// Two-byte Opcode Flag
80//
81#define TWO_BYTE_OPCODE_ESCAPE 0x0F
82
83#endif
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette