Commit 6e090e29 by Tom Wood

*** empty log message ***

From-SVN: r532
parent b009935d
...@@ -47,7 +47,7 @@ extern char *ctime (); ...@@ -47,7 +47,7 @@ extern char *ctime ();
extern int flag_traditional; extern int flag_traditional;
extern FILE *asm_out_file; extern FILE *asm_out_file;
static char out_sccs_id[] = "@(#)m88k.c 2.0.2.2 02 Mar 1992 13:30:28"; static char out_sccs_id[] = "@(#)m88k.c 2.0.3.4 19 Mar 1992 11:11:58";
static char tm_sccs_id [] = TM_SCCS_ID; static char tm_sccs_id [] = TM_SCCS_ID;
char *m88k_pound_sign = ""; /* Either # for SVR4 or empty for SVR3 */ char *m88k_pound_sign = ""; /* Either # for SVR4 or empty for SVR3 */
...@@ -811,7 +811,7 @@ output_short_branch_defs (stream) ...@@ -811,7 +811,7 @@ output_short_branch_defs (stream)
ASM_GENERATE_INTERNAL_LABEL ASM_GENERATE_INTERNAL_LABEL
(low, "L", CODE_LABEL_NUMBER (XEXP (sb_low, 0))); (low, "L", CODE_LABEL_NUMBER (XEXP (sb_low, 0)));
/* This will change as the assembler requirements become known. */ /* This will change as the assembler requirements become known. */
fprintf (stream, "%s\t %s,%s-%s\n", fprintf (stream, "\t%s\t %s,%s-%s\n",
DEF_ASM_OP, &name[1], &high[1], &low[1]); DEF_ASM_OP, &name[1], &high[1], &low[1]);
} }
if (sb_name || sb_high || sb_low) if (sb_name || sb_high || sb_low)
...@@ -1311,7 +1311,7 @@ output_file_start (file, f_options, f_len, W_options, W_len) ...@@ -1311,7 +1311,7 @@ output_file_start (file, f_options, f_len, W_options, W_len)
char indent[256]; char indent[256];
time_t now = time ((time_t *)0); time_t now = time ((time_t *)0);
sprintf (indent, "]\"\n%s\t \"@(#)%s [", IDENT_ASM_OP, main_input_filename); sprintf (indent, "]\"\n\t%s\t \"@(#)%s [", IDENT_ASM_OP, main_input_filename);
fprintf (file, indent+3); fprintf (file, indent+3);
pos = fprintf (file, "gcc %s, %.24s,", VERSION_STRING, ctime (&now)); pos = fprintf (file, "gcc %s, %.24s,", VERSION_STRING, ctime (&now));
output_options (file, f_options, f_len, W_options, W_len, output_options (file, f_options, f_len, W_options, W_len,
...@@ -1331,14 +1331,14 @@ output_ascii (file, p, size) ...@@ -1331,14 +1331,14 @@ output_ascii (file, p, size)
register int num = 0; register int num = 0;
fprintf (file, "%s\t \"", ASCII_DATA_ASM_OP); fprintf (file, "\t%s\t \"", ASCII_DATA_ASM_OP);
for (i = 0; i < size; i++) for (i = 0; i < size; i++)
{ {
register int c = p[i]; register int c = p[i];
if (num > 48) if (num > 48)
{ {
fprintf (file, "\"\n%s\t \"", ASCII_DATA_ASM_OP); fprintf (file, "\"\n\t%s\t \"", ASCII_DATA_ASM_OP);
num = 0; num = 0;
} }
...@@ -1406,12 +1406,12 @@ m88k_handle_pragma_token (string, token) ...@@ -1406,12 +1406,12 @@ m88k_handle_pragma_token (string, token)
{ {
if (state == ps_name || state == ps_value) if (state == ps_name || state == ps_value)
{ {
fprintf (asm_out_file, "%s\t ", WEAK_ASM_OP); fprintf (asm_out_file, "\t%s\t ", WEAK_ASM_OP);
ASM_OUTPUT_LABELREF (asm_out_file, name); ASM_OUTPUT_LABELREF (asm_out_file, name);
fputc ('\n', asm_out_file); fputc ('\n', asm_out_file);
if (state == ps_value) if (state == ps_value)
{ {
fprintf (asm_out_file, "%s\t ", DEF_ASM_OP); fprintf (asm_out_file, "\t%s\t ", DEF_ASM_OP);
ASM_OUTPUT_LABELREF (asm_out_file, name); ASM_OUTPUT_LABELREF (asm_out_file, name);
fputc (',', asm_out_file); fputc (',', asm_out_file);
ASM_OUTPUT_LABELREF (asm_out_file, value); ASM_OUTPUT_LABELREF (asm_out_file, value);
...@@ -2196,7 +2196,7 @@ output_tdesc (file, offset) ...@@ -2196,7 +2196,7 @@ output_tdesc (file, offset)
tdesc_section (); tdesc_section ();
fprintf (file, "%s\t %d", INT_ASM_OP, (16 << 2) | 2 /* 8:0,22:16,2:2 */); fprintf (file, "\t%s\t %d", INT_ASM_OP, (16 << 2) | 2 /* 8:0,22:16,2:2 */);
fprintf (file, ",%d", flag_pic ? 2 : 1); fprintf (file, ",%d", flag_pic ? 2 : 1);
ASM_GENERATE_INTERNAL_LABEL (buf, OCS_START_PREFIX, m88k_function_number); ASM_GENERATE_INTERNAL_LABEL (buf, OCS_START_PREFIX, m88k_function_number);
...@@ -2444,7 +2444,7 @@ m88k_builtin_saveregs (arglist) ...@@ -2444,7 +2444,7 @@ m88k_builtin_saveregs (arglist)
} }
/* Allocate the va_list constructor */ /* Allocate the va_list constructor */
block = assign_stack_local (BLKmode, 3 * UNITS_PER_WORD, BITS_PER_UNIT); block = assign_stack_local (BLKmode, 3 * UNITS_PER_WORD, BITS_PER_WORD);
RTX_UNCHANGING_P (block) = 1; RTX_UNCHANGING_P (block) = 1;
RTX_UNCHANGING_P (XEXP (block, 0)) = 1; RTX_UNCHANGING_P (XEXP (block, 0)) = 1;
......
...@@ -204,9 +204,9 @@ extern char * reg_names[]; ...@@ -204,9 +204,9 @@ extern char * reg_names[];
/* Print subsidiary information on the compiler version in use. /* Print subsidiary information on the compiler version in use.
Redefined in m88kv4.h, and m88kluna.h. */ Redefined in m88kv4.h, and m88kluna.h. */
#define VERSION_INFO1 "88open OCS/BCS, " #define VERSION_INFO1 "88open OCS/BCS, "
#define VERSION_INFO2 "09 Mar 1992" #define VERSION_INFO2 "19 Mar 1992"
#define VERSION_STRING version_string #define VERSION_STRING version_string
#define TM_SCCS_ID "@(#)m88k.h 2.0.2.3 09 Mar 1992 14:20:23" #define TM_SCCS_ID "@(#)m88k.h 2.0.3.5 19 Mar 1992 12:40:46"
/* Run-time compilation parameters selecting different hardware subsets. */ /* Run-time compilation parameters selecting different hardware subsets. */
...@@ -1773,7 +1773,7 @@ enum reg_class { NO_REGS, AP_REG, GENERAL_REGS, ALL_REGS, LIM_REG_CLASSES }; ...@@ -1773,7 +1773,7 @@ enum reg_class { NO_REGS, AP_REG, GENERAL_REGS, ALL_REGS, LIM_REG_CLASSES };
/* The singl-byte pseudo-op is the default. Override svr[34].h. */ /* The singl-byte pseudo-op is the default. Override svr[34].h. */
#undef ASM_BYTE_OP #undef ASM_BYTE_OP
#define ASM_BYTE_OP "byte" #define ASM_BYTE_OP "\tbyte"
#undef ASM_OUTPUT_ASCII #undef ASM_OUTPUT_ASCII
#define ASM_OUTPUT_ASCII(FILE, P, SIZE) \ #define ASM_OUTPUT_ASCII(FILE, P, SIZE) \
output_ascii ((FILE), (P), (SIZE)) output_ascii ((FILE), (P), (SIZE))
......
...@@ -28,14 +28,14 @@ ...@@ -28,14 +28,14 @@
(define_expand "m88k_sccs_id" (define_expand "m88k_sccs_id"
[(match_operand:SI 0 "" "")] [(match_operand:SI 0 "" "")]
"" ""
"{ static char sccs_id[] = \"@(#)m88k.md 2.0.2.1 28 Feb 1992 12:38:31\"; "{ static char sccs_id[] = \"@(#)m88k.md 2.0.3.3 18 Mar 1992 15:40:12\";
FAIL; }") FAIL; }")
;; Attribute specifications ;; Attribute specifications
; Target CPU. ; Target CPU.
(define_attr "cpu" "m88000,m88100,m88110" (define_attr "cpu" "m88000,m88100,m88110"
(symbol_ref "m88k_cpu")) (const (symbol_ref "m88k_cpu")))
; Type of each instruction. Default is arithmetic. ; Type of each instruction. Default is arithmetic.
; I'd like to write the list as this, but genattrtab won't accept it. ; I'd like to write the list as this, but genattrtab won't accept it.
...@@ -167,7 +167,7 @@ ...@@ -167,7 +167,7 @@
; Describing stores is currently not useful. The suggestion here is that the ; Describing stores is currently not useful. The suggestion here is that the
; function unit ordering has already been established (writeback is last) and ; function unit ordering has already been established (writeback is last) and
; that store insns use the units in an unusal order. ; that store insns use the units in an unusual order.
;(define_function_unit "writeback" 1 1 (eq_attr "type" "store,mstore") 0 1) ;(define_function_unit "writeback" 1 1 (eq_attr "type" "store,mstore") 0 1)
;(define_function_unit "memory" 1 3 (eq_attr "type" "store,mstore") 1 2) ;(define_function_unit "memory" 1 3 (eq_attr "type" "store,mstore") 1 2)
...@@ -189,7 +189,12 @@ ...@@ -189,7 +189,12 @@
(match_operand:SI 2 "int5_operand" "")) (match_operand:SI 2 "int5_operand" ""))
(match_operand:SI 3 "int5_operand" "")))] (match_operand:SI 3 "int5_operand" "")))]
"INTVAL (operands [2]) <= INTVAL (operands [3])" "INTVAL (operands [2]) <= INTVAL (operands [3])"
"ext %0,%1,%w3<(%3-%2)>") "*
{
operands[4] = gen_rtx (CONST_INT, SImode,
INTVAL (operands[3]) - INTVAL (operands[2]));
return \"ext %0,%1,%w3<%4>\"; /* <(%3-%2)> */
}")
(define_insn "" (define_insn ""
[(set (match_operand:SI 0 "register_operand" "=r") [(set (match_operand:SI 0 "register_operand" "=r")
...@@ -197,7 +202,12 @@ ...@@ -197,7 +202,12 @@
(match_operand:SI 2 "int5_operand" "")) (match_operand:SI 2 "int5_operand" ""))
(match_operand:SI 3 "int5_operand" "")))] (match_operand:SI 3 "int5_operand" "")))]
"INTVAL (operands [2]) <= INTVAL (operands [3])" "INTVAL (operands [2]) <= INTVAL (operands [3])"
"extu %0,%1,%w3<(%3-%2)>") "*
{
operands[4] = gen_rtx (CONST_INT, SImode,
INTVAL (operands[3]) - INTVAL (operands[2]));
return \"extu %0,%1,%w3<%4>\"; /* <(%3-%2)> */
}")
;; Optimize possible cases of the set instruction. ;; Optimize possible cases of the set instruction.
...@@ -2653,7 +2663,12 @@ ...@@ -2653,7 +2663,12 @@
(match_operand:SI 2 "int5_operand" "") (match_operand:SI 2 "int5_operand" "")
(match_operand:SI 3 "int5_operand" "")))] (match_operand:SI 3 "int5_operand" "")))]
"" ""
"ext %0,%1,%2<(32-%2-%3)>") "*
{
operands[4] = gen_rtx (CONST_INT, SImode,
(32 - INTVAL (operands[2])) - INTVAL (operands[3]));
return \"ext %0,%1,%2<%4>\"; /* <(32-%2-%3)> */
}")
(define_insn "" (define_insn ""
[(set (match_operand:SI 0 "register_operand" "=r") [(set (match_operand:SI 0 "register_operand" "=r")
...@@ -2669,7 +2684,12 @@ ...@@ -2669,7 +2684,12 @@
(match_operand:SI 2 "int5_operand" "") (match_operand:SI 2 "int5_operand" "")
(match_operand:SI 3 "int5_operand" "")))] (match_operand:SI 3 "int5_operand" "")))]
"" ""
"extu %0,%1,%2<(32-%2-%3)>") "*
{
operands[4] = gen_rtx (CONST_INT, SImode,
(32 - INTVAL (operands[2])) - INTVAL (operands[3]));
return \"extu %0,%1,%2<%4>\"; /* <(32-%2-%3)> */
}")
(define_insn "" (define_insn ""
[(set (zero_extract:SI (match_operand:SI 0 "register_operand" "r") [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "r")
...@@ -2677,7 +2697,12 @@ ...@@ -2677,7 +2697,12 @@
(match_operand:SI 2 "int5_operand" "")) (match_operand:SI 2 "int5_operand" ""))
(const_int 0))] (const_int 0))]
"" ""
"clr %0,%0,%1<(32-%1-%2)>") "*
{
operands[3] = gen_rtx (CONST_INT, SImode,
(32 - INTVAL (operands[1])) - INTVAL (operands[2]));
return \"clr %0,%0,%1<%3>\"; /* <(32-%1-%2)> */
}")
(define_insn "" (define_insn ""
[(set (zero_extract:SI (match_operand:SI 0 "register_operand" "r") [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "r")
...@@ -2685,7 +2710,12 @@ ...@@ -2685,7 +2710,12 @@
(match_operand:SI 2 "int5_operand" "")) (match_operand:SI 2 "int5_operand" ""))
(const_int -1))] (const_int -1))]
"" ""
"set %0,%0,%1<(32-%1-%2)>") "*
{
operands[3] = gen_rtx (CONST_INT, SImode,
(32 - INTVAL (operands[1])) - INTVAL (operands[2]));
return \"set %0,%0,%1<%3>\"; /* <(32-%1-%2)> */
}")
(define_insn "" (define_insn ""
[(set (zero_extract:SI (match_operand:SI 0 "register_operand" "=r") [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "=r")
......
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