diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2007-10-19 15:21:16 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2007-10-19 15:21:16 -0700 |
commit | d8494325f07695e810e51dffbf9daf5145b10d1a (patch) | |
tree | d95a813d95614ca535d648ffd4cd770ef41791c2 /src/arch/x86/isa/decoder/one_byte_opcodes.isa | |
parent | 35a8bc56cd1454f6d32ee7d0309f3ce62639f17c (diff) | |
download | gem5-d8494325f07695e810e51dffbf9daf5145b10d1a.tar.xz |
X86: Implement the PUSHF, POPF, SAHF, and LAHF instructions.
--HG--
extra : convert_revision : 37c63b1133022fa3432888592f8c84785fb95091
Diffstat (limited to 'src/arch/x86/isa/decoder/one_byte_opcodes.isa')
-rw-r--r-- | src/arch/x86/isa/decoder/one_byte_opcodes.isa | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/arch/x86/isa/decoder/one_byte_opcodes.isa b/src/arch/x86/isa/decoder/one_byte_opcodes.isa index ac714b3ff..62b8c8d59 100644 --- a/src/arch/x86/isa/decoder/one_byte_opcodes.isa +++ b/src/arch/x86/isa/decoder/one_byte_opcodes.isa @@ -313,17 +313,18 @@ default: WarnUnimpl::call_far_Ap(); } 0x3: WarnUnimpl::fwait(); //aka wait - 0x4: WarnUnimpl::pushf_Fv(); - 0x5: WarnUnimpl::popf_Fv(); - //Both of these should be illegal only if CPUID.AHF64=0, - //according to sandpile.org + 0x4: PUSHF(); + 0x5: POPF(); + //The 64 bit versions of both of these should be illegal only + //if CPUID says it isn't supported. For now, we'll just assume + //that it's supported. 0x6: decode MODE_SUBMODE { - 0x0: UD2(); - default: WarnUnimpl::sahf(); + 0x0: SAHF_64(); + default: SAHF(); } 0x7: decode MODE_SUBMODE { - 0x0: UD2(); - default: WarnUnimpl::lahf(); + 0x0: LAHF_64(); + default: LAHF(); } } 0x14: decode OPCODE_OP_BOTTOM3 { |