From ab1b54b56dadafae5d0abe2549b0e0c1c6058c41 Mon Sep 17 00:00:00 2001 From: ceriel Date: Thu, 1 Nov 1990 09:37:02 +0000 Subject: [PATCH] Added sparc description, don't put constants in regs on M68020 --- util/ego/descr/.distr | 1 + util/ego/descr/Makefile | 3 ++ util/ego/descr/descr.sed | 1 + util/ego/descr/m68020.descr | 10 ++-- util/ego/descr/sparc.descr | 103 ++++++++++++++++++++++++++++++++++++ 5 files changed, 113 insertions(+), 5 deletions(-) create mode 100644 util/ego/descr/sparc.descr diff --git a/util/ego/descr/.distr b/util/ego/descr/.distr index ab35179e5..2b9dc1429 100644 --- a/util/ego/descr/.distr +++ b/util/ego/descr/.distr @@ -9,3 +9,4 @@ vax4.descr em22.descr em24.descr em44.descr +sparc.descr diff --git a/util/ego/descr/Makefile b/util/ego/descr/Makefile index 18e02cd86..ef089aef8 100644 --- a/util/ego/descr/Makefile +++ b/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 + diff --git a/util/ego/descr/descr.sed b/util/ego/descr/descr.sed index 611b54699..2a552d7d1 100644 --- a/util/ego/descr/descr.sed +++ b/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/ diff --git a/util/ego/descr/m68020.descr b/util/ego/descr/m68020.descr index 4c9a91fa7..85b53e435 100644 --- a/util/ego/descr/m68020.descr +++ b/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) diff --git a/util/ego/descr/sparc.descr b/util/ego/descr/sparc.descr new file mode 100644 index 000000000..476ab3b1e --- /dev/null +++ b/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 -- 2.34.1