From d8494325f07695e810e51dffbf9daf5145b10d1a Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Fri, 19 Oct 2007 15:21:16 -0700 Subject: X86: Implement the PUSHF, POPF, SAHF, and LAHF instructions. --HG-- extra : convert_revision : 37c63b1133022fa3432888592f8c84785fb95091 --- src/arch/x86/isa/decoder/one_byte_opcodes.isa | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/arch/x86/isa/decoder') 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 { -- cgit v1.2.3