* alpha.c (print_operand_address): Account for the subreg word.

From-SVN: r26633
This commit is contained in:
Richard Henderson 1999-04-25 17:27:17 -07:00 committed by Richard Henderson
parent 07444f1d90
commit e03ec28f6e
2 changed files with 17 additions and 17 deletions

View File

@ -1,3 +1,7 @@
Mon Apr 26 00:26:18 1999 Richard Henderson <rth@cygnus.com>
* alpha.c (print_operand_address): Account for the subreg word.
Mon Apr 26 01:08:36 1999 Toshiyasu Morita (tm@netcom.com)
* fold-const.c (make_range): Always initialize arg0 and arg1.

View File

@ -1,6 +1,5 @@
/* Subroutines used for code generation on the DEC Alpha.
Copyright (C) 1992, 93, 94, 95, 96, 97, 1998, 1999 Free Software
Foundation, Inc.
Copyright (C) 1992, 93-98, 1999 Free Software Foundation, Inc.
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
This file is part of GNU CC.
@ -2935,33 +2934,30 @@ print_operand_address (file, addr)
FILE *file;
rtx addr;
{
rtx basereg = NULL_RTX;
int basereg = 31;
HOST_WIDE_INT offset = 0;
if (GET_CODE (addr) == AND)
addr = XEXP (addr, 0);
if (GET_CODE (addr) == SUBREG)
addr = SUBREG_REG (addr);
if (GET_CODE (addr) == REG)
basereg = addr;
else if (GET_CODE (addr) == CONST_INT)
offset = INTVAL (addr);
else if (GET_CODE (addr) == PLUS
&& GET_CODE (XEXP (addr, 1)) == CONST_INT)
if (GET_CODE (addr) == PLUS
&& GET_CODE (XEXP (addr, 1)) == CONST_INT)
{
offset = INTVAL (XEXP (addr, 1));
basereg = XEXP (addr, 0);
if (GET_CODE (basereg) == SUBREG)
basereg = SUBREG_REG (basereg);
if (GET_CODE (basereg) != REG)
abort ();
addr = XEXP (addr, 0);
}
if (GET_CODE (addr) == REG)
basereg = REGNO (addr);
else if (GET_CODE (addr) == SUBREG
&& GET_CODE (SUBREG_REG (addr)) == REG)
basereg = REGNO (SUBREG_REG (addr)) + SUBREG_WORD (addr);
else if (GET_CODE (addr) == CONST_INT)
offset = INTVAL (addr);
else
abort ();
fprintf (file, HOST_WIDE_INT_PRINT_DEC, offset);
fprintf (file, "($%d)", basereg ? REGNO (basereg) : 31);
fprintf (file, "($%d)", basereg);
}
/* Emit RTL insns to initialize the variable parts of a trampoline at