diff options
-rw-r--r-- | gas/ChangeLog | 3 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 7 |
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 |