mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-28 01:04:35 +08:00
mmix.c (mmix_assemble_integer): Handle non-CONST_INT through default_assemble_integer.
* config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle non-CONST_INT through default_assemble_integer. <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF. <case 8>: Abort for CONST_DOUBLE. From-SVN: r49687
This commit is contained in:
parent
97cf8285dc
commit
a02ac96696
@ -1,3 +1,10 @@
|
||||
2002-02-11 Hans-Peter Nilsson <hp@bitrange.com>
|
||||
|
||||
* config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
|
||||
non-CONST_INT through default_assemble_integer.
|
||||
<case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
|
||||
<case 8>: Abort for CONST_DOUBLE.
|
||||
|
||||
2002-02-11 John David Anglin <dave@hiauly1.hia.nrc.ca>
|
||||
|
||||
* gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
|
||||
|
@ -1909,19 +1909,43 @@ mmix_assemble_integer (x, size, aligned_p)
|
||||
if (aligned_p)
|
||||
switch (size)
|
||||
{
|
||||
/* We handle a limited number of types of operands in here. But
|
||||
that's ok, because we can punt to generic functions. We then
|
||||
pretend that we don't emit aligned data is needed, so the usual
|
||||
.pseudo syntax is used (which work for aligned data too). We
|
||||
actually *must* do that, since we say we don't have simple
|
||||
aligned pseudos, causing this function to be called. We just
|
||||
try and keep as much compatibility as possible with mmixal
|
||||
syntax for normal cases (i.e. without GNU extensions and C
|
||||
only). */
|
||||
case 1:
|
||||
if (GET_CODE (x) != CONST_INT)
|
||||
{
|
||||
aligned_p = 0;
|
||||
break;
|
||||
}
|
||||
fputs ("\tBYTE\t", asm_out_file);
|
||||
mmix_print_operand (asm_out_file, x, 'B');
|
||||
fputc ('\n', asm_out_file);
|
||||
return true;
|
||||
|
||||
case 2:
|
||||
if (GET_CODE (x) != CONST_INT)
|
||||
{
|
||||
aligned_p = 0;
|
||||
break;
|
||||
}
|
||||
fputs ("\tWYDE\t", asm_out_file);
|
||||
mmix_print_operand (asm_out_file, x, 'W');
|
||||
fputc ('\n', asm_out_file);
|
||||
return true;
|
||||
|
||||
case 4:
|
||||
if (GET_CODE (x) != CONST_INT && GET_CODE (x) != SYMBOL_REF)
|
||||
{
|
||||
aligned_p = 0;
|
||||
break;
|
||||
}
|
||||
fputs ("\tTETRA\t", asm_out_file);
|
||||
mmix_print_operand (asm_out_file, x, 'L');
|
||||
fputc ('\n', asm_out_file);
|
||||
@ -1929,9 +1953,11 @@ mmix_assemble_integer (x, size, aligned_p)
|
||||
|
||||
case 8:
|
||||
if (GET_CODE (x) == CONST_DOUBLE)
|
||||
mmix_output_octa (asm_out_file, mmix_intval (x), 0);
|
||||
else
|
||||
assemble_integer_with_op ("\tOCTA\t", x);
|
||||
/* We don't get here anymore for CONST_DOUBLE, because DImode
|
||||
isn't expressed as CONST_DOUBLE, and DFmode is handled
|
||||
elsewhere. */
|
||||
abort ();
|
||||
assemble_integer_with_op ("\tOCTA\t", x);
|
||||
return true;
|
||||
}
|
||||
return default_assemble_integer (x, size, aligned_p);
|
||||
|
Loading…
Reference in New Issue
Block a user