+Fri Apr 2 11:36:12 1999 Jan Hubicka (hubicka@paru.cas.cz)
+
+ * i386.c (print_operand_address, case REG): Do not use ESI addressing
+ mode for the K6.
+
+ * i386.c (print_operand_address, case MULT): Use more efficient
+ encoding (mult (reg) (const_int 2)).
+
Thu Apr 1 17:01:50 1999 Richard Henderson <rth@cygnus.com>
Move over patch from Bernd Schmidt from GC branch:
switch (GET_CODE (addr))
{
case REG:
+ /* ESI addressing makes instruction vector decoded on the K6. We can
+ avoid this by ESI+0 addressing. */
+ if (REGNO_REG_CLASS (REGNO (addr)) == SIREG
+ && ix86_cpu == PROCESSOR_K6 && !optimize_size)
+ output_addr_const (file, const0_rtx);
ADDR_BEG (file);
fprintf (file, "%se", RP);
fputs (hi_reg_name[REGNO (addr)], file);
ireg = XEXP (addr, 0);
}
- output_addr_const (file, const0_rtx);
- PRINT_B_I_S (NULL_RTX, ireg, scale, file);
+ /* (reg,reg,) is shorter than (,reg,2). */
+ if(scale == 2)
+ {
+ PRINT_B_I_S (ireg, ireg, 1, file);
+ }
+ else
+ {
+ output_addr_const (file, const0_rtx);
+ PRINT_B_I_S (NULL_RTX, ireg, scale, file);
+ }
}
break;