Commit 3b4b85c9 by Bernardo Innocenti Committed by Bernardo Innocenti

m68k.c, m68k.md (SGS, [...]): Remove code to support SGS assembler.

	* config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
	code to support SGS assembler.  Reformat adjacent code where possible.
	* config/m68k/m68k.c (switch_table_difference_label_flag): Remove definition.
	* config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support for '%#'.
	* config/m68k/linux.h, config/m68k/m68k.c,
	* config/m68k/math-68881.h: Replace `%#' with `#' in inline asm macros and
	asm_printf() format strings.
	* config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
	* config/m68k/linux.h: Update copyright.
	* config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.

From-SVN: r77518
parent 413b5912
2004-02-08 Bernardo Innocenti <bernie@develer.com>
* config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
code to support SGS assembler. Reformat adjacent code where possible.
* config/m68k/m68k.c (switch_table_difference_label_flag): Remove definition.
* config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support for '%#'.
* config/m68k/linux.h, config/m68k/m68k.c,
* config/m68k/math-68881.h: Replace `%#' with `#' in inline asm macros and
asm_printf() format strings.
* config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
* config/m68k/linux.h: Update copyright.
* config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
2004-02-08 Andreas Schwab <schwab@suse.de> 2004-02-08 Andreas Schwab <schwab@suse.de>
Bernardo Innocenti <bernie@develer.com> Bernardo Innocenti <bernie@develer.com>
......
/* Definitions for Motorola 68k running Linux-based GNU systems with /* Definitions for Motorola 68k running Linux-based GNU systems with
ELF format. ELF format.
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc. Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004
Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -284,10 +285,10 @@ do { \ ...@@ -284,10 +285,10 @@ do { \
unsigned long _end = (unsigned long) (END); \ unsigned long _end = (unsigned long) (END); \
register unsigned long _len __asm ("%d4") = (_end - _beg + 32); \ register unsigned long _len __asm ("%d4") = (_end - _beg + 32); \
__asm __volatile \ __asm __volatile \
("move%.l %#123, %/d0\n\t" /* system call nr */ \ ("move%.l #123, %/d0\n\t" /* system call nr */ \
"move%.l %#1, %/d2\n\t" /* clear lines */ \ "move%.l #1, %/d2\n\t" /* clear lines */ \
"move%.l %#3, %/d3\n\t" /* insn+data caches */ \ "move%.l #3, %/d3\n\t" /* insn+data caches */ \
"trap %#0" \ "trap #0" \
: /* no outputs */ \ : /* no outputs */ \
: "d" (_beg), "d" (_len) \ : "d" (_beg), "d" (_len) \
: "%d0", "%d2", "%d3"); \ : "%d0", "%d2", "%d3"); \
......
...@@ -1629,8 +1629,6 @@ do { if (cc_prev_status.flags & CC_IN_68881) \ ...@@ -1629,8 +1629,6 @@ do { if (cc_prev_status.flags & CC_IN_68881) \
sp@+, (sp)+ or (%sp)+ depending on the style of syntax. sp@+, (sp)+ or (%sp)+ depending on the style of syntax.
'@' for a reference to the top word on the stack: '@' for a reference to the top word on the stack:
sp@, (sp) or (%sp) depending on the style of syntax. sp@, (sp) or (%sp) depending on the style of syntax.
'#' for an immediate operand prefix (# in MIT and Motorola syntax
but & in SGS syntax).
'!' for the fpcr register (used in some float-to-fixed conversions). '!' for the fpcr register (used in some float-to-fixed conversions).
'$' for the letter `s' in an op code, but only on the 68040. '$' for the letter `s' in an op code, but only on the 68040.
'&' for the letter `d' in an op code, but only on the 68040. '&' for the letter `d' in an op code, but only on the 68040.
...@@ -1645,9 +1643,8 @@ do { if (cc_prev_status.flags & CC_IN_68881) \ ...@@ -1645,9 +1643,8 @@ do { if (cc_prev_status.flags & CC_IN_68881) \
or print pair of registers as rx:ry. */ or print pair of registers as rx:ry. */
#define PRINT_OPERAND_PUNCT_VALID_P(CODE) \ #define PRINT_OPERAND_PUNCT_VALID_P(CODE) \
((CODE) == '.' || (CODE) == '#' || (CODE) == '-' \ ((CODE) == '.' || (CODE) == '-' || (CODE) == '+' || (CODE) == '@' \
|| (CODE) == '+' || (CODE) == '@' || (CODE) == '!' \ || (CODE) == '!' || (CODE) == '$' || (CODE) == '&' || (CODE) == '/')
|| (CODE) == '$' || (CODE) == '&' || (CODE) == '/')
/* A C compound statement to output to stdio stream STREAM the /* A C compound statement to output to stdio stream STREAM the
assembler syntax for an instruction operand X. X is an RTL assembler syntax for an instruction operand X. X is an RTL
......
...@@ -191,19 +191,6 @@ do { \ ...@@ -191,19 +191,6 @@ do { \
putc ('\n', (FILE)); \ putc ('\n', (FILE)); \
} while (0) } while (0)
/* SVR4 m68k assembler is bitching on the syntax `2.b'.
So use the "LLDnnn-LLnnn" format. Define LLDnnn after the table. */
#undef ASM_OUTPUT_CASE_END
#define ASM_OUTPUT_CASE_END(FILE,NUM,TABLE) \
do { \
if (switch_table_difference_label_flag) \
asm_fprintf ((FILE), "%s%LLD%d,%LL%d\n", SET_ASM_OP, (NUM), (NUM)); \
switch_table_difference_label_flag = 0; \
} while (0)
extern int switch_table_difference_label_flag;
#undef ASM_OUTPUT_COMMON #undef ASM_OUTPUT_COMMON
#undef ASM_OUTPUT_LOCAL #undef ASM_OUTPUT_LOCAL
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \ #define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
......
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
({ \ ({ \
double huge_val; \ double huge_val; \
\ \
__asm ("fmove%.d %#0x7ff0000000000000,%0" /* Infinity */ \ __asm ("fmove%.d #0x7ff0000000000000,%0" /* Infinity */ \
: "=f" (huge_val) \ : "=f" (huge_val) \
: /* no inputs */); \ : /* no inputs */); \
huge_val; \ huge_val; \
...@@ -135,10 +135,10 @@ atan2 (double y, double x) ...@@ -135,10 +135,10 @@ atan2 (double y, double x)
{ {
double pi, pi_over_2; double pi, pi_over_2;
__asm ("fmovecr%.x %#0,%0" /* extended precision pi */ __asm ("fmovecr%.x #0,%0" /* extended precision pi */
: "=f" (pi) : "=f" (pi)
: /* no inputs */ ); : /* no inputs */ );
__asm ("fscale%.b %#-1,%0" /* no loss of accuracy */ __asm ("fscale%.b #-1,%0" /* no loss of accuracy */
: "=f" (pi_over_2) : "=f" (pi_over_2)
: "0" (pi)); : "0" (pi));
if (x > 0) if (x > 0)
...@@ -178,7 +178,7 @@ atan2 (double y, double x) ...@@ -178,7 +178,7 @@ atan2 (double y, double x)
double value; double value;
errno = EDOM; errno = EDOM;
__asm ("fmove%.d %#0x7fffffffffffffff,%0" /* quiet NaN */ __asm ("fmove%.d #0x7fffffffffffffff,%0" /* quiet NaN */
: "=f" (value) : "=f" (value)
: /* no inputs */); : /* no inputs */);
return value; return value;
...@@ -317,7 +317,7 @@ pow (double x, double y) ...@@ -317,7 +317,7 @@ pow (double x, double y)
double value; double value;
errno = EDOM; errno = EDOM;
__asm ("fmove%.d %#0x7fffffffffffffff,%0" /* quiet NaN */ __asm ("fmove%.d #0x7fffffffffffffff,%0" /* quiet NaN */
: "=f" (value) : "=f" (value)
: /* no inputs */); : /* no inputs */);
return value; return value;
...@@ -344,7 +344,7 @@ pow (double x, double y) ...@@ -344,7 +344,7 @@ pow (double x, double y)
double value; double value;
errno = EDOM; errno = EDOM;
__asm ("fmove%.d %#0x7fffffffffffffff,%0" /* quiet NaN */ __asm ("fmove%.d #0x7fffffffffffffff,%0" /* quiet NaN */
: "=f" (value) : "=f" (value)
: /* no inputs */); : /* no inputs */);
return value; return value;
...@@ -505,7 +505,7 @@ frexp (double x, int *exp) ...@@ -505,7 +505,7 @@ frexp (double x, int *exp)
: "f" (x)); : "f" (x));
if (mantissa != 0) if (mantissa != 0)
{ {
__asm ("fscale%.b %#-1,%0" __asm ("fscale%.b #-1,%0"
: "=f" (mantissa) /* mantissa /= 2.0 */ : "=f" (mantissa) /* mantissa /= 2.0 */
: "0" (mantissa)); : "0" (mantissa));
int_exponent += 1; int_exponent += 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment