*** empty log message ***

From-SVN: r580
This commit is contained in:
Richard Stallman 1992-03-23 21:22:17 +00:00
parent 5089e22e27
commit 6d75030881
2 changed files with 54 additions and 17 deletions

View File

@ -211,7 +211,7 @@ secondary_reload_class (class, mode, in)
/* Generate the rtx that comes from an address expression in the md file */ /* Generate the rtx that comes from an address expression in the md file */
/* The expression to be build is BASE[INDEX:SCALE]. To recognize this, /* The expression to be build is BASE[INDEX:SCALE]. To recognize this,
scale must be converted from an exponent (from ASHIFT) to a scale must be converted from an exponent (from ASHIFT) to a
muliplier (for MULT). */ multiplier (for MULT). */
rtx rtx
gen_indexed_expr (base, index, scale) gen_indexed_expr (base, index, scale)
rtx base, index, scale; rtx base, index, scale;
@ -380,22 +380,55 @@ print_operand (file, x, code)
else if (GET_CODE (x) == REG) else if (GET_CODE (x) == REG)
fprintf (file, "%s", reg_names[REGNO (x)]); fprintf (file, "%s", reg_names[REGNO (x)]);
else if (GET_CODE (x) == MEM) else if (GET_CODE (x) == MEM)
output_address (XEXP (x, 0)); {
rtx tmp = XEXP (x, 0);
#ifndef PC_RELATIVE
if (GET_CODE (tmp) == SYMBOL_REF || GET_CODE (tmp) == LABEL_REF)
{
char *out = XSTR (tmp, 0);
if (out[0] == '*')
fprintf (file, "@%s", &out[1]);
else
ASM_OUTPUT_LABELREF (file, out);
}
else
#endif
output_address (XEXP (x, 0));
}
else if (GET_CODE (x) == CONST_DOUBLE && GET_MODE (x) != DImode) else if (GET_CODE (x) == CONST_DOUBLE && GET_MODE (x) != DImode)
if (GET_MODE (x) == DFmode) {
{ if (GET_MODE (x) == DFmode)
union { double d; int i[2]; } u; {
u.i[0] = CONST_DOUBLE_LOW (x); u.i[1] = CONST_DOUBLE_HIGH (x); union { double d; int i[2]; } u;
PUT_IMMEDIATE_PREFIX(file); u.i[0] = CONST_DOUBLE_LOW (x); u.i[1] = CONST_DOUBLE_HIGH (x);
fprintf (file, "0d%.20e", u.d); PUT_IMMEDIATE_PREFIX(file);
} #ifdef SEQUENT_ASM
else /* Sequent likes it's floating point constants as integers */
{ fprintf (file, "0Dx%08x%08x", u.i[1], u.i[0])l
union { double d; int i[2]; } u; #else
u.i[0] = CONST_DOUBLE_LOW (x); u.i[1] = CONST_DOUBLE_HIGH (x); #ifdef ENCORE_ASM
PUT_IMMEDIATE_PREFIX(file); fprintf (file, "0f%.20e", u.d);
fprintf (file, "0f%.20e", u.d); #else
} fprintf (file, "0d%.20e", u.d);
#endif
#endif
}
else
{
union { double d; int i[2]; } u;
u.i[0] = CONST_DOUBLE_LOW (x); u.i[1] = CONST_DOUBLE_HIGH (x);
PUT_IMMEDIATE_PREFIX(file);
#ifdef SEQUENT_ASM
{
union { float f; long l; } uu;
uu.f = u.d;
fprintf (file, "0Fx%08x", uu.l);
}
#else
fprintf (file, "0f%.20e", u.d);
#endif
}
}
else else
{ {
PUT_IMMEDIATE_PREFIX(file); PUT_IMMEDIATE_PREFIX(file);

View File

@ -57,7 +57,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#define CPP_PREDEFINES "-Dns32000 -Dns32532 -Dpc532 -Dunix" #define CPP_PREDEFINES "-Dns32000 -Dns32532 -Dpc532 -Dunix"
/* Use pc relative addressing whenever possible, /* Use pc relative addressing whenever possible,
it's more efficient than absolute (out-ns32k.c) it's more efficient than absolute (ns32k.c)
You have to fix a bug in gas 1.38.1 to make this work with gas, You have to fix a bug in gas 1.38.1 to make this work with gas,
patch available from jkp@cs.hut.fi. */ patch available from jkp@cs.hut.fi. */
@ -66,3 +66,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* This machine appears to use GAS syntax. */ /* This machine appears to use GAS syntax. */
#define GAS_SYNTAX #define GAS_SYNTAX
/* Every address needs to use a base reg. */
#define BASE_REG_NEEDED