1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-05 15:10:27 +02:00
guile/check/ldst.inc
pcpa 3356b9d93a Add functional hppa port. All tests pass.
* include/lightning/jit_hppa.h, lib/jit_hppa-cpu.c,
	lib/jit_hppa-fpu.c, lib/jit_hppa.c: New files implementing
	the hppa port. Built on Debian Linux PA-RISC 2.0, 32 bit.

	* check/float.tst: Add preprocessor for hppa expected
	values when converting NaN and +-Inf to an integer.

	* check/ldst.inc: Ensure double load/store tests use an
	8 byte aligned address by default.

	* lib/lightning.c: Correct a bug found during tests in
	the new port, where qmul* and qdiv* were not properly
	setting one of the result registers as modified in the
	function, what would be a problem if the only "write"
	usage were the qmul* or qdiv*.

	* check/varargs.tst, check/varargs.ok: Add one extra
	interleaved integer/double test to validate proper code
	generation in the extra case.

	* check/lightning.c, configure.ac, include/lightning.h,
	include/lightning/Makefile.am,
	include/lightning/jit_private.h, lib/Makefile.am,
	lib/jit_disasm.c: Update for the hppa port.
2013-06-01 01:53:33 -03:00

102 lines
1.8 KiB
C++

#if __WORDSIZE == 64
# define L0 0x8000000000000001
# define LL0 L0
# define LC0 0xffffffffffffff81
# define LS0 0xffffffffffff8001
# define LI0 0xffffffff80000001
# define L1 0x8000000000000000
# define LL1 L1
# define LC1 0xffffffffffffff80
# define LS1 0xffffffffffff8000
# define LI1 0xffffffff80000000
# define L2 0x7fffffffffffffff
# define LL2 L2
# define LC2 0x000000000000007f
# define LS2 0x0000000000007fff
# define LI2 0x000000007fffffff
# define L3 0xffffffffffffffff
# define LL3 L3
# define LC3 0xffffffffffffffff
# define LS3 0xffffffffffffffff
# define LI3 0xffffffffffffffff
# define XC LC0
# define XS LS0
# define XI LI0
#else
# define XC IC0
# define XS IS0
# define XI II0
#endif
#define I0 0x80000001
#define II0 I0
#define IC0 0xffffff81
#define IS0 0xffff8001
#define I1 0x80000000
#define II1 I1
#define IC1 0xffffff80
#define IS1 0xffff8000
#define I2 0x7fffffff
#define II2 I2
#define IC2 0x0000007f
#define IS2 0x00007fff
#define I3 0xffffffff
#define II3 I3
#define IC3 0xffffffff
#define IS3 0xffffffff
#define S0 0x8001
#define S1 0x8000
#define S2 0x7fff
#define S3 0xffff
#define C0 0x81
#define C1 0x80
#define C2 0x7f
#define C3 0xff
#define F0 0.25
#define F1 0.75
#define F2 -0.25
#define F3 -0.75
#define D0 0.25
#define D1 0.75
#define D2 -0.25
#define D3 -0.75
.data 512
ok:
.c "ok\n"
.align 8
t0:
c0:
.c 0
uc0:
.c 0
s0:
.s 0
us0:
.s 0
.align 4
i0:
.i 0
#if __WORDSIZE == 64
ui0:
.i 0
.align 8
l0:
.l 0
#endif
f0:
.f 0
.align 8
d0:
.d 0
. $($offc = c0 - t0)
. $($offuc = uc0 - t0)
. $($offs = s0 - t0)
. $($offus = us0 - t0)
. $($offi = i0 - t0)
#if __WORDSIZE == 64
. $($offui = ui0 - t0)
. $($offl = l0 - t0)
#endif
. $($offf = f0 - t0)
. $($offd = d0 - t0)