1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 03:30:27 +02:00

bump version, add ldxi test case

Patches applied:

 * lcourtes@laas.fr--2005-libre/lightning--stable--1.2--patch-7
   Added a test case for `ldxi' with big immediate operands.

git-archimport-id: bonzini@gnu.org--2004b/lightning--stable--1.2--patch-26
This commit is contained in:
Paolo Bonzini 2006-07-18 14:02:19 +00:00
parent f2cae06544
commit 2c1b6b96e8
8 changed files with 114 additions and 32 deletions

View file

@ -1,7 +1,7 @@
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir)
noinst_PROGRAMS = fibit incr printf printf2 rpn fib fibdelay add bp testfp funcfp rpnfp modi
noinst_DATA = fibit.ok incr.ok printf.ok printf2.ok rpn.ok fib.ok fibdelay.ok testfp.ok funcfp.ok rpnfp.ok add.ok bp.ok modi.ok
check_PROGRAMS = fibit incr printf printf2 rpn fib fibdelay add bp testfp funcfp rpnfp modi ldxi
noinst_DATA = fibit.ok incr.ok printf.ok printf2.ok rpn.ok fib.ok fibdelay.ok testfp.ok funcfp.ok rpnfp.ok add.ok bp.ok modi.ok ldxi.ok
EXTRA_DIST = $(noinst_DATA) run-test
if DISASS
@ -9,6 +9,6 @@ LDADD = $(top_builddir)/opcode/libdisass.a
endif
if REGRESSION_TESTING
TESTS = fib fibit fibdelay incr printf printf2 rpn add bp testfp funcfp rpnfp modi
TESTS = fib fibit fibdelay incr printf printf2 rpn add bp testfp funcfp rpnfp modi ldxi
TESTS_ENVIRONMENT=$(srcdir)/run-test
endif

View file

@ -14,7 +14,6 @@
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@ -38,10 +37,10 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
noinst_PROGRAMS = fibit$(EXEEXT) incr$(EXEEXT) printf$(EXEEXT) \
check_PROGRAMS = fibit$(EXEEXT) incr$(EXEEXT) printf$(EXEEXT) \
printf2$(EXEEXT) rpn$(EXEEXT) fib$(EXEEXT) fibdelay$(EXEEXT) \
add$(EXEEXT) bp$(EXEEXT) testfp$(EXEEXT) funcfp$(EXEEXT) \
rpnfp$(EXEEXT) modi$(EXEEXT)
rpnfp$(EXEEXT) modi$(EXEEXT) ldxi$(EXEEXT)
subdir = tests
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@ -51,7 +50,6 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
PROGRAMS = $(noinst_PROGRAMS)
add_SOURCES = add.c
add_OBJECTS = add.$(OBJEXT)
add_LDADD = $(LDADD)
@ -81,6 +79,10 @@ incr_SOURCES = incr.c
incr_OBJECTS = incr.$(OBJEXT)
incr_LDADD = $(LDADD)
@DISASS_TRUE@incr_DEPENDENCIES = $(top_builddir)/opcode/libdisass.a
ldxi_SOURCES = ldxi.c
ldxi_OBJECTS = ldxi.$(OBJEXT)
ldxi_LDADD = $(LDADD)
@DISASS_TRUE@ldxi_DEPENDENCIES = $(top_builddir)/opcode/libdisass.a
modi_SOURCES = modi.c
modi_OBJECTS = modi.$(OBJEXT)
modi_LDADD = $(LDADD)
@ -113,10 +115,10 @@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = add.c bp.c fib.c fibdelay.c fibit.c funcfp.c incr.c modi.c \
printf.c printf2.c rpn.c rpnfp.c testfp.c
DIST_SOURCES = add.c bp.c fib.c fibdelay.c fibit.c funcfp.c incr.c \
SOURCES = add.c bp.c fib.c fibdelay.c fibit.c funcfp.c incr.c ldxi.c \
modi.c printf.c printf2.c rpn.c rpnfp.c testfp.c
DIST_SOURCES = add.c bp.c fib.c fibdelay.c fibit.c funcfp.c incr.c \
ldxi.c modi.c printf.c printf2.c rpn.c rpnfp.c testfp.c
DATA = $(noinst_DATA)
ETAGS = etags
CTAGS = ctags
@ -216,10 +218,10 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir)
noinst_DATA = fibit.ok incr.ok printf.ok printf2.ok rpn.ok fib.ok fibdelay.ok testfp.ok funcfp.ok rpnfp.ok add.ok bp.ok modi.ok
noinst_DATA = fibit.ok incr.ok printf.ok printf2.ok rpn.ok fib.ok fibdelay.ok testfp.ok funcfp.ok rpnfp.ok add.ok bp.ok modi.ok ldxi.ok
EXTRA_DIST = $(noinst_DATA) run-test
@DISASS_TRUE@LDADD = $(top_builddir)/opcode/libdisass.a
@REGRESSION_TESTING_TRUE@TESTS = fib fibit fibdelay incr printf printf2 rpn add bp testfp funcfp rpnfp modi
@REGRESSION_TESTING_TRUE@TESTS = fib fibit fibdelay incr printf printf2 rpn add bp testfp funcfp rpnfp modi ldxi
@REGRESSION_TESTING_TRUE@TESTS_ENVIRONMENT = $(srcdir)/run-test
all: all-am
@ -255,8 +257,8 @@ $(top_srcdir)/configure: $(am__configure_deps)
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
clean-noinstPROGRAMS:
-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
clean-checkPROGRAMS:
-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
add$(EXEEXT): $(add_OBJECTS) $(add_DEPENDENCIES)
@rm -f add$(EXEEXT)
$(LINK) $(add_LDFLAGS) $(add_OBJECTS) $(add_LDADD) $(LIBS)
@ -278,6 +280,9 @@ funcfp$(EXEEXT): $(funcfp_OBJECTS) $(funcfp_DEPENDENCIES)
incr$(EXEEXT): $(incr_OBJECTS) $(incr_DEPENDENCIES)
@rm -f incr$(EXEEXT)
$(LINK) $(incr_LDFLAGS) $(incr_OBJECTS) $(incr_LDADD) $(LIBS)
ldxi$(EXEEXT): $(ldxi_OBJECTS) $(ldxi_DEPENDENCIES)
@rm -f ldxi$(EXEEXT)
$(LINK) $(ldxi_LDFLAGS) $(ldxi_OBJECTS) $(ldxi_LDADD) $(LIBS)
modi$(EXEEXT): $(modi_OBJECTS) $(modi_DEPENDENCIES)
@rm -f modi$(EXEEXT)
$(LINK) $(modi_LDFLAGS) $(modi_OBJECTS) $(modi_LDADD) $(LIBS)
@ -310,6 +315,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fibit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/funcfp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/incr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldxi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/modi.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf2.Po@am__quote@
@ -481,9 +487,10 @@ distdir: $(DISTFILES)
fi; \
done
check-am: all-am
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: check-am
all-am: Makefile $(PROGRAMS) $(DATA)
all-am: Makefile $(DATA)
installdirs:
install: install-am
install-exec: install-exec-am
@ -511,7 +518,7 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am
clean-am: clean-checkPROGRAMS clean-generic mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
@ -559,7 +566,7 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
clean-generic clean-noinstPROGRAMS ctags distclean \
clean-checkPROGRAMS clean-generic ctags distclean \
distclean-compile distclean-generic distclean-tags distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-exec install-exec-am \

62
tests/ldxi.c Normal file
View file

@ -0,0 +1,62 @@
/******************************** -*- C -*- ****************************
*
* Test jit_ldxi_i
*
***********************************************************************/
/* Contributed by Ludovic Courtes. */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <stdio.h>
#include <string.h>
#include "lightning.h"
typedef char (* loader_t) (int);
/* Check `ldxi' with a big operand (OPERAND is assumed to be ``big'', e.g.,
more than one octet-long on PowerPC). */
static loader_t
generate_ldxi_big_operand (void *operand)
{
static char buffer[1024];
loader_t result;
int arg;
/* printf ("si?=%i ui?=%i\n", _siP (16, operand), _uiP (16, operand)); */
result = (loader_t)(jit_set_ip (buffer).iptr);
jit_leaf (1);
arg = jit_arg_i ();
jit_getarg_i (JIT_R1, arg);
jit_ldxi_c (JIT_R0, JIT_R1, operand);
jit_movr_i (JIT_RET, JIT_R0);
jit_ret ();
jit_flush_code (buffer, jit_get_ip ().ptr);
return result;
}
int
main (int argc, char *argv[])
{
static const char the_array[] = "GNU Lightning";
unsigned i;
loader_t array_loader = generate_ldxi_big_operand ((void *)the_array);
for (i = 0; i < sizeof (the_array) - 1; i++)
{
printf ("array[%i] = %c, array_loader (%i) = %c\n",
i, the_array[i], i, array_loader (i));
if (the_array[i] != array_loader (i))
return 1;
}
return 0;
}

13
tests/ldxi.ok Normal file
View file

@ -0,0 +1,13 @@
array[0] = G, array_loader (0) = G
array[1] = N, array_loader (1) = N
array[2] = U, array_loader (2) = U
array[3] = , array_loader (3) =
array[4] = L, array_loader (4) = L
array[5] = i, array_loader (5) = i
array[6] = g, array_loader (6) = g
array[7] = h, array_loader (7) = h
array[8] = t, array_loader (8) = t
array[9] = n, array_loader (9) = n
array[10] = i, array_loader (10) = i
array[11] = n, array_loader (11) = n
array[12] = g, array_loader (12) = g