aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog3
-rw-r--r--gas/config/tc-i386.c7
2 files changed, 10 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index a832a08..c359b9d 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,8 @@
Mon Mar 24 12:11:18 1997 Ian Lance Taylor <ian@cygnus.com>
+ * config/tc-i386.h (iclrKludge): Define.
+ * config/tc-i386.c (md_assemble): Handle iclrKludge.
+
* config/tc-alpha.h (tc_frob_file_before_adjust): Define if
OBJ_ECOFF.
(alpha_frob_file_before_adjust): Declare if OBJ_ECOFF.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 3d562cd..cec14bc 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -1345,6 +1345,13 @@ md_assemble (line)
i.reg_operands = 2;
}
+ /* The clr %reg instruction is converted into xor %reg, %reg. */
+ if (t->opcode_modifier & iclrKludge)
+ {
+ i.regs[1] = i.regs[0];
+ i.reg_operands = 2;
+ }
+
/* Certain instructions expect the destination to be in the i.rm.reg
field. This is by far the exceptional case. For these
instructions, if the source operand is a register, we must reverse