mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
Merge upstream 'lightening'
* libguile/lightening: Merge from https://gitlab.com/wingo/lightening,
commit 24ef197b12
.
This commit is contained in:
commit
7e814190e3
3 changed files with 27 additions and 5 deletions
|
@ -230,7 +230,7 @@ encode_thumb_immediate(unsigned int v)
|
||||||
return ((v & 0xff) | (1 << 12));
|
return ((v & 0xff) | (1 << 12));
|
||||||
/* abcdefgh 00000000 abcdefgh 00000000 */
|
/* abcdefgh 00000000 abcdefgh 00000000 */
|
||||||
if (((v & 0xffff0000) >> 16) == (v & 0xffff) && (v & 0xff) == 0)
|
if (((v & 0xffff0000) >> 16) == (v & 0xffff) && (v & 0xff) == 0)
|
||||||
return ((v & 0x000000ff) | (2 << 12));
|
return (((v & 0x0000ff00) >> 8) | (2 << 12));
|
||||||
/* abcdefgh abcdefgh abcdefgh abcdefgh */
|
/* abcdefgh abcdefgh abcdefgh abcdefgh */
|
||||||
if ( (v & 0xff) == ((v & 0xff00) >> 8) &&
|
if ( (v & 0xff) == ((v & 0xff00) >> 8) &&
|
||||||
((v & 0xff00) >> 8) == ((v & 0xff0000) >> 16) &&
|
((v & 0xff00) >> 8) == ((v & 0xff0000) >> 16) &&
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
TESTS=$(sort $(basename $(wildcard *.c)))
|
TESTS=$(sort $(basename $(wildcard *.c)))
|
||||||
TARGETS=native ia32 aarch64 armv7
|
TARGETS ?= native ia32 aarch64 armv7
|
||||||
|
|
||||||
# Suitable values of cross-compiler variables for Debian:
|
# Suitable values of cross-compiler variables for Debian:
|
||||||
#
|
#
|
||||||
|
@ -17,9 +17,9 @@ TARGETS=native ia32 aarch64 armv7
|
||||||
# gcc-aarch64-linux-gnu libc6-dev-arm64-cross libc6:arm64
|
# gcc-aarch64-linux-gnu libc6-dev-arm64-cross libc6:arm64
|
||||||
#
|
#
|
||||||
CC = gcc
|
CC = gcc
|
||||||
CC_IA32=guix environment --pure -s i686-linux --ad-hoc gcc-toolchain glibc -- gcc
|
CC_IA32=guix environment --pure -s i686-linux --ad-hoc gcc-toolchain -- gcc
|
||||||
CC_AARCH64=guix environment --pure -s aarch64-linux --ad-hoc gcc-toolchain glibc -- gcc
|
CC_AARCH64=guix environment --pure -s aarch64-linux --ad-hoc gcc-toolchain -- gcc
|
||||||
CC_ARMv7=guix environment --pure -s armhf-linux --ad-hoc gcc-toolchain glibc -- gcc
|
CC_ARMv7=guix environment --pure -s armhf-linux --ad-hoc gcc-toolchain -- gcc
|
||||||
CFLAGS = -Wall -O0 -g
|
CFLAGS = -Wall -O0 -g
|
||||||
|
|
||||||
all: $(foreach TARGET,$(TARGETS),$(addprefix test-$(TARGET)-,$(TESTS)))
|
all: $(foreach TARGET,$(TARGETS),$(addprefix test-$(TARGET)-,$(TESTS)))
|
||||||
|
|
22
libguile/lightening/tests/movi.c
Normal file
22
libguile/lightening/tests/movi.c
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
#include "test.h"
|
||||||
|
|
||||||
|
static void
|
||||||
|
run_test(jit_state_t *j, uint8_t *arena_base, size_t arena_size)
|
||||||
|
{
|
||||||
|
jit_begin(j, arena_base, arena_size);
|
||||||
|
size_t align = jit_enter_jit_abi(j, 0, 0, 0);
|
||||||
|
|
||||||
|
jit_movi(j, JIT_R0, 0xa500a500);
|
||||||
|
jit_leave_jit_abi(j, 0, 0, align);
|
||||||
|
jit_retr(j, JIT_R0);
|
||||||
|
|
||||||
|
jit_uword_t (*f)(void) = jit_end(j, NULL);
|
||||||
|
|
||||||
|
ASSERT(f() == 0xa500a500);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
main (int argc, char *argv[])
|
||||||
|
{
|
||||||
|
return main_helper(argc, argv, run_test);
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue