Browse Source

Added sparc description, don't put constants in regs on M68020

ceriel 34 years ago
parent
commit
744986b7f1

+ 1 - 0
util/ego/descr/.distr

@@ -9,3 +9,4 @@ vax4.descr
 em22.descr
 em24.descr
 em44.descr
+sparc.descr

+ 3 - 0
util/ego/descr/Makefile

@@ -61,3 +61,6 @@ em24descr:	em24.descr descr.sed
 em44descr:	em44.descr descr.sed
 		$(CPP) -P -I$(EMH) em44.descr | sed -f descr.sed > em44descr
 
+sparcdescr:	sparc.descr descr.sed
+		$(CPP) -P -I$(EMH) sparc.descr | sed -f descr.sed > sparcdescr
+

+ 1 - 0
util/ego/descr/descr.sed

@@ -8,6 +8,7 @@ s/sizes//
 s/size//
 s/->//
 s/pointer/2/g
+s/float/3/g
 s/general/0/g
 s/fitbyte/1/
 s/default/0/

+ 5 - 5
util/ego/descr/m68020.descr

@@ -25,9 +25,9 @@ register score parameters:
 			default ->	(2,2)
 	constant:
 		(3 sizes)
-		in_0_8 ->	(0,0)
-		fitbyte ->	(2,2)
-		default ->	(4,4)
+		in_0_8 ->	(-1,-1)
+		fitbyte ->	(-1,-1)
+		default ->	(-1,-1)
 	double constant:
 		(1 size)
 		default ->	(-1,-1)
@@ -57,8 +57,8 @@ opening cost parameters:
 			general ->	(4,4)
 	constant:
 		(2 sizes)
-		fitbyte ->	(4,2)
-		default ->	(6,6)
+		fitbyte ->	(1000,1000)
+		default ->	(1000,1000)
 	double constant:
 		(1 size)
 		default ->	(1000,1000)

+ 103 - 0
util/ego/descr/sparc.descr

@@ -0,0 +1,103 @@
+wordsize: 4
+pointersize: 4
+%%RA
+general registers: 12
+address registers: 0
+floating point registers: 16
+use general as pointer: yes
+
+register score parameters:
+        local variable:
+                (3 cases)
+                general,general
+                        (1 size)
+                        default ->      (2,1)
+                pointer,general
+                        (1 size)
+                        default ->      (2,1)
+                float,float
+                        (1 size)
+                        default ->      (2,1)
+        address of local variable:
+                (1 case)
+                general,general
+                        (1 size)
+                        default ->      (-1,-1)
+        constant:
+                (1 sizes)
+                default ->      (-1,-1)
+        double constant:
+                (1 size)
+                default ->      (-1,-1)
+        address of global variable:
+                (1 size)
+                default ->      (1,1)
+        address of procedure:
+                (1 size)
+                default ->      (-1,-1)
+
+opening cost parameters:
+        local variable:
+                (1 case)
+                general
+                        (1 size)
+                        default ->      (2,1)
+        address of local variable:
+                (1 case)
+                general
+                        (1 size)
+                        default ->      (-1,-1)
+        constant:
+                (1 size)
+                default ->      (-1,-1)
+        double constant:
+                (1 size)
+                default ->      (-1,-1)
+        address of global variable:
+                (1 size)
+                default ->      (2,2)
+        address of procedure:
+                (1 size)
+                default ->      (-1,-1)
+
+register save costs:
+        (14 cases)
+        0 -> (0,0)
+        1 -> (0,0)
+        2 -> (0,0)
+        3 -> (0,0)
+        4 -> (0,0)
+        5 -> (0,0)
+        6 -> (0,0)
+        7 -> (0,0)
+        8 -> (0,0)
+        9 -> (0,0)
+        10 -> (0,0)
+        11 -> (0,0)
+        12 -> (0,0)
+        0 -> (0,0)
+
+%%UD
+access costs of global variables:
+	(1 size)
+	default ->	(3,2)
+access costs of local variables:
+	(1 size)
+	default ->	(2,1)
+%%SR
+overflow harmful?:  no
+array bound harmful?:  yes
+%%CS
+#include "../../../h/em_mnem.h"
+first time then space:
+addressing modes: -1
+                  -1
+cheap operations: op_cuu op_ciu op_cui op_cii -1
+                  op_cuu op_ciu op_cui op_cii -1
+lexical tresholds: 1 1
+indirection limit: 8
+do not eliminate sli if index on shiftcounts:   -1
+                                                -1
+forbidden operators: -1 -1
+%%SP
+global stack pollution allowed?: yes