* config/tc-i386.h (iclrKludge): Define.
authorIan Lance Taylor <ian@airs.com>
Mon, 24 Mar 1997 19:37:05 +0000 (19:37 +0000)
committerIan Lance Taylor <ian@airs.com>
Mon, 24 Mar 1997 19:37:05 +0000 (19:37 +0000)
* config/tc-i386.c (md_assemble): Handle iclrKludge.

gas/ChangeLog
gas/config/tc-i386.c

index a832a08bad8298573b9d3aa9bf12df6c14065b80..c359b9d70bfa5edc75f83cc369bb991cadc0e047 100644 (file)
@@ -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.
index 3d562cd0bf025f585d5d5e676fce9c2d805f1ea3..cec14bc1ddf7b59ed9a01ee1f4f59af365560b6d 100644 (file)
@@ -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