summaryrefslogtreecommitdiff
path: root/src/arch/x86
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-07-20 14:57:04 -0700
committerGabe Black <gblack@eecs.umich.edu>2007-07-20 14:57:04 -0700
commit5d882984d197e8edc59678d6699c9e205cd77a89 (patch)
treef30fedb3db3da8416b971f78c8d5a13c36a2cf5c /src/arch/x86
parentdcfaa348b190c97a2476b0e9c099160c8c1e0202 (diff)
downloadgem5-5d882984d197e8edc59678d6699c9e205cd77a89.tar.xz
Add a bitfield to decode based on what prefixes are used.
--HG-- extra : convert_revision : 7ff4998b3249ccfe86ae9cbcc63fb910683707f5
Diffstat (limited to 'src/arch/x86')
-rw-r--r--src/arch/x86/isa/bitfields.isa3
-rw-r--r--src/arch/x86/types.hh5
2 files changed, 5 insertions, 3 deletions
diff --git a/src/arch/x86/isa/bitfields.isa b/src/arch/x86/isa/bitfields.isa
index 8707bbb4c..43fee5fef 100644
--- a/src/arch/x86/isa/bitfields.isa
+++ b/src/arch/x86/isa/bitfields.isa
@@ -67,11 +67,12 @@ def bitfield REX_B rex.b;
//Legacy prefixes
def bitfield LEGACY legacy;
+def bitfield LEGACY_DECODEVAL legacy.decodeVal;
def bitfield LEGACY_REPNE legacy.repne;
def bitfield LEGACY_REP legacy.rep;
def bitfield LEGACY_LOCK legacy.lock;
-def bitfield LEGACY_ADDR legacy.addr;
def bitfield LEGACY_OP legacy.op;
+def bitfield LEGACY_ADDR legacy.addr;
def bitfield LEGACY_SEG legacy.seg;
// Pieces of the opcode
diff --git a/src/arch/x86/types.hh b/src/arch/x86/types.hh
index 9d927679d..a509ff57a 100644
--- a/src/arch/x86/types.hh
+++ b/src/arch/x86/types.hh
@@ -86,11 +86,12 @@ namespace X86ISA
};
BitUnion8(LegacyPrefixVector)
+ Bitfield<7, 4> decodeVal;
Bitfield<7> repne;
Bitfield<6> rep;
Bitfield<5> lock;
- Bitfield<4> addr;
- Bitfield<3> op;
+ Bitfield<4> op;
+ Bitfield<3> addr;
//There can be only one segment override, so they share the
//first 3 bits in the legacyPrefixes bitfield.
Bitfield<2,0> seg;