From f0dce3bfce72a1a8514aa22e04ea6e06253a985f Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Thu, 18 Oct 2007 22:42:17 -0700 Subject: X86: Implement the undocumented SALC instruction which sets AL to 0xFF if CF=1 and 0x00 otherwise. --HG-- extra : convert_revision : 845d43c544e296d7595f54054906055a9f21ad9f --- src/arch/x86/isa/decoder/one_byte_opcodes.isa | 2 +- .../insts/general_purpose/compare_and_test/set_byte_on_condition.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/arch/x86/isa/decoder/one_byte_opcodes.isa b/src/arch/x86/isa/decoder/one_byte_opcodes.isa index 483e750b2..473dd1eeb 100644 --- a/src/arch/x86/isa/decoder/one_byte_opcodes.isa +++ b/src/arch/x86/isa/decoder/one_byte_opcodes.isa @@ -461,7 +461,7 @@ } 0x6: decode MODE_SUBMODE { 0x0: UD2(); - default: WarnUnimpl::salc(); + default: SALC(rAb); } 0x7: XLAT(); } diff --git a/src/arch/x86/isa/insts/general_purpose/compare_and_test/set_byte_on_condition.py b/src/arch/x86/isa/insts/general_purpose/compare_and_test/set_byte_on_condition.py index 81091905c..fab42dffd 100644 --- a/src/arch/x86/isa/insts/general_purpose/compare_and_test/set_byte_on_condition.py +++ b/src/arch/x86/isa/insts/general_purpose/compare_and_test/set_byte_on_condition.py @@ -54,6 +54,11 @@ # Authors: Gabe Black microcode = ''' +def macroop SALC_R +{ + sbb reg, reg, reg, dataSize=1 +}; + def macroop SETZ_R { movi reg, reg, 1, flags=(CZF,) -- cgit v1.2.3