Commit 2d6cb879 by Tom Wood

*** empty log message ***

From-SVN: r377
parent c5d555ca
...@@ -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 1.96.5.2 06 Feb 1992 10:02:20"; static char out_sccs_id[] = "@(#)m88k.c 2.0.2.1 28 Feb 1992 12:36:54";
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 */
...@@ -63,6 +63,8 @@ int m88k_case_index; ...@@ -63,6 +63,8 @@ int m88k_case_index;
rtx m88k_compare_reg; /* cmp output pseudo register */ rtx m88k_compare_reg; /* cmp output pseudo register */
rtx m88k_compare_op0; /* cmpsi operand 0 */ rtx m88k_compare_op0; /* cmpsi operand 0 */
rtx m88k_compare_op1; /* cmpsi operand 1 */ rtx m88k_compare_op1; /* cmpsi operand 1 */
enum attr_cpu m88k_cpu; /* target cpu */
/* Determine what instructions are needed to manufacture the integer VALUE /* Determine what instructions are needed to manufacture the integer VALUE
in the given MODE. */ in the given MODE. */
...@@ -2129,10 +2131,11 @@ m88k_debugger_offset (reg, offset) ...@@ -2129,10 +2131,11 @@ m88k_debugger_offset (reg, offset)
offset -= m88k_stack_size; offset -= m88k_stack_size;
else if (reg != arg_pointer_rtx) else if (reg != arg_pointer_rtx)
{ {
#if (MONITOR_GCC & 0x10) /* Watch for suspicious symbolic locations. */
if (! (GET_CODE (reg) == REG if (! (GET_CODE (reg) == REG
&& REGNO (reg) >= FIRST_PSEUDO_REGISTER)) && REGNO (reg) >= FIRST_PSEUDO_REGISTER))
/* @@ For now, I'd like to know if this happens. */
warning ("Internal gcc error: Can't express symbolic location"); warning ("Internal gcc error: Can't express symbolic location");
#endif
return 0; return 0;
} }
......
...@@ -95,6 +95,8 @@ extern struct rtx_def *m88k_compare_reg; ...@@ -95,6 +95,8 @@ extern struct rtx_def *m88k_compare_reg;
extern struct rtx_def *m88k_compare_op0; extern struct rtx_def *m88k_compare_op0;
extern struct rtx_def *m88k_compare_op1; extern struct rtx_def *m88k_compare_op1;
extern enum attr_cpu m88k_cpu;
extern int null_epilogue (); extern int null_epilogue ();
extern int integer_ok_for_set (); extern int integer_ok_for_set ();
extern int m88k_debugger_offset (); extern int m88k_debugger_offset ();
...@@ -202,9 +204,9 @@ extern char * reg_names[]; ...@@ -202,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 "12 Feb 1992" #define VERSION_INFO2 "28 Feb 1992"
#define VERSION_STRING version_string #define VERSION_STRING version_string
#define TM_SCCS_ID "@(#)m88k.h 1.96.5.5 12 Feb 1992 12:59:25" #define TM_SCCS_ID "@(#)m88k.h 2.0.2.1 28 Feb 1992 12:37:41"
/* Run-time compilation parameters selecting different hardware subsets. */ /* Run-time compilation parameters selecting different hardware subsets. */
...@@ -302,6 +304,9 @@ extern char * reg_names[]; ...@@ -302,6 +304,9 @@ extern char * reg_names[];
if ((target_flags & MASK_88000) == 0) \ if ((target_flags & MASK_88000) == 0) \
target_flags |= CPU_DEFAULT; \ target_flags |= CPU_DEFAULT; \
\ \
m88k_cpu = (TARGET_88000 ? CPU_M88000 \
: (TARGET_88100 ? CPU_M88100 : CPU_M88110)); \
\
if (TARGET_BIG_PIC) \ if (TARGET_BIG_PIC) \
flag_pic = 2; \ flag_pic = 2; \
\ \
......
...@@ -28,11 +28,15 @@ ...@@ -28,11 +28,15 @@
(define_expand "m88k_sccs_id" (define_expand "m88k_sccs_id"
[(match_operand:SI 0 "" "")] [(match_operand:SI 0 "" "")]
"" ""
"{ static char sccs_id[] = \"@(#)m88k.md 1.96.4.3 1/14/92 09:46:15\"; "{ static char sccs_id[] = \"@(#)m88k.md 2.0.2.1 28 Feb 1992 12:38:31\";
FAIL; }") FAIL; }")
;; Attribute specifications ;; Attribute specifications
; Target CPU.
(define_attr "cpu" "m88000,m88100,m88110"
(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.
; ;
...@@ -642,14 +646,11 @@ ...@@ -642,14 +646,11 @@
;; The actual compare instructions. ;; The actual compare instructions.
(define_insn "" (define_insn ""
[(set (match_operand:CC 0 "register_operand" "=r,r") [(set (match_operand:CC 0 "register_operand" "=r")
(compare:CC (match_operand:SI 1 "register_operand" "rO,I") (compare:CC (match_operand:SI 1 "register_operand" "rO")
(match_operand:SI 2 "arith_operand" "rI,r")))] (match_operand:SI 2 "arith_operand" "rI")))]
"" ""
"@ "cmp %0,%r1,%2")
cmp %0,%r1,%2
cmp %0,%2,%1\;xor.c %0,%#r0,%0"
[(set_attr "type" "arith,marith")])
(define_insn "" (define_insn ""
[(set (match_operand:CC 0 "register_operand" "=r,r") [(set (match_operand:CC 0 "register_operand" "=r,r")
......
...@@ -152,6 +152,11 @@ print_operand_address (file, addr) ...@@ -152,6 +152,11 @@ print_operand_address (file, addr)
reg1 = XEXP (addr, 1); reg1 = XEXP (addr, 1);
addr = XEXP (addr, 0); addr = XEXP (addr, 0);
} }
else if (GET_CODE (XEXP (addr, 0)) == REG)
{
reg1 = XEXP (addr, 0);
addr = XEXP (addr, 1);
}
else else
abort (); abort ();
......
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