arg_error ("loi", size);
}
else {
- a = pop_reg(); /* count */
+ a = alloc_reg(); /* count */
+ pop_reg_as(a);
b = pop_reg(); /* addr */
c = alloc_reg();
flush_cache();
}
else
{
- a= pop_reg();
+ a= alloc_reg();
+ pop_reg_as(a);
flush_cache();
"sub $reg_sp, $a, $reg_sp";
"1:"
if (type_of_tos() != T_cst)
{
- a= pop_reg();
+ a= alloc_reg();
+ pop_reg_as(a);
b= pop_reg();
}
else
}
else
{
- a= pop_reg();
+ a= alloc_reg();
+ pop_reg_as(a);
b= alloc_reg();
c= alloc_reg();
flush_cache();
n= n % 32;
if (n)
{
- a= pop_reg();
+ a= alloc_reg();
+ pop_reg_as(a);
b= alloc_reg();
c= alloc_reg();
sprint(n_str, "%d", n);
}
else
{
- a= pop_reg();
- b= pop_reg();
+ a= alloc_reg();
+ pop_reg_as(a);
+ b= alloc_reg();
+ pop_reg_as(b);
c= alloc_reg();
d= alloc_reg();
"and $a, 31, $c";
n= n % 32;
if (n)
{
- a= pop_reg();
+ a= alloc_reg();
+ pop_reg_as(a);
b= alloc_reg();
c= alloc_reg();
sprint(n_str, "%d", n);
}
else
{
- a= pop_reg();
- b= pop_reg();
+ a= alloc_reg();
+ pop_reg_as(a);
+ b= alloc_reg();
+ pop_reg_as(b);
c= alloc_reg();
d= alloc_reg();
"and $a, 31, $c";
{
a= pop_reg();
b= alloc_reg();
- c= alloc_reg();
"srl $a, $i_str, $b";
- "and $b, 1, $c";
+ "and $b, 1, $b";
free_reg(a);
- free_reg(b);
- push_reg(c);
+ push_reg(b);
}
}
else
b= pop_reg();
c= alloc_reg();
"srl $b, $a, $c";
- "and $c, 1, $a";
- push_reg(a);
+ "and $c, 1, $c";
+ push_reg(c);
free_reg(b);
- free_reg(c);
+ free_reg(a);
}
}
else if (n == 2*EM_WSIZE)
free_reg(d);
}
} else {
- a= pop_reg();
- b= pop_reg();
+ a= alloc_reg();
+ pop_reg_as(a);
+ b= alloc_reg();
+ pop_reg_as(b);
flush_cache();
c= alloc_reg();
d= alloc_reg();
else
{
- c= pop_reg(); /* size */
+ c= alloc_reg(); /* size */
+ pop_reg_as(c);
a= pop_reg(); /* dest */
b= pop_reg(); /* src */
d= alloc_reg();
SED = sed
M4 = m4
-CPP = /lib/cpp
all: EM_table cache.c
-distr: all
-
-EM_table: EM_table.x cegpp
- $(CPP) < EM_table.x -P | $(M4) | $(SED) -f cegpp > $@
+EM_table:
+ if [ -x /usr/ccs/lib/cpp ] ; then /usr/ccs/lib/cpp < EM_table.x -P | $(M4) | $(SED) -f cegpp > $@ ; else /lib/cpp < EM_table.x -P | $(M4) | $(SED) -f cegpp > $@ ; fi
-cache.c: cache.c.x cegpp
+cache.c:
$(SED) -f cegpp cache.c.x > $@
+
+distr:
+ rm -f EM_table cache.c
+ make all
#ifndef MACH_H
#define MACH_H
+#ifdef __solaris__
+#include <sys/asm_linkage.h>
+#else
+#include <sun4/asm_linkage.h>
+#endif
+
#define alloc_double B_alloc_double
#define alloc_double_var B_allc_double_var
#define alloc_float B_alloc_float
/*#define DEBUG 1 /* define when debugging */
-#ifdef __solaris__
-#include <sys/asm_linkage.h>
-#else
-#include <sun4/asm_linkage.h>
-#endif
-
#define BYTES_REVERSED
#define WORDS_REVERSED
+#ifndef WINDOWSIZE
+#define WINDOWSIZE (16*4)
+#endif
+
#define ONE_BYTE int
#define TWO_BYTES int
#define FOUR_BYTES long
CEG = $(TARGET_HOME)/lib.bin/ceg/util
all:
- ( cd $(SRC_DIR); make )
+ ( cd $(SRC_DIR); make CPP=$(UTIL_HOME)/lib.bin/cpp )
make -f $(CEG)/make_asobj "OBJ="$(OBJ) "MACH="$(MACH)
install:
- ( cd $(SRC_DIR); make )
+ ( cd $(SRC_DIR); make CPP=$(UTIL_HOME)/lib.bin/cpp )
-mkdir $(TARGET_HOME)/lib.bin/sparc
make -f $(CEG)/make_asobj "OBJ="$(OBJ) "MACH="$(MACH) install
cmp:
- ( cd $(SRC_DIR); make )
+ ( cd $(SRC_DIR); make CPP=$(UTIL_HOME)/lib.bin/cpp )
-make -f $(CEG)/make_asobj "OBJ="$(OBJ) "MACH="$(MACH) cmp
pr: