All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm
@ 2019-02-28 20:25 Alex Bennée
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 01/16] tests/tcg: add softmmu awareness to Makefile Alex Bennée
                   ` (16 more replies)
  0 siblings, 17 replies; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Alex Bennée

Hi,

This is the second version of my system tests for TCG. We actually
only enable system tests for ARM and Xtensa but the framework is all
there for adding the others. I thought I'd get this out for comment
before starting on some softmmu tests for my demacro series. Also in
this set:

  - add cris linux-user to check-tcg
  - fixup some mips hello-world
  - gdb test runner
  - .travis.yml tweaks

checkpatch complains a bit due to the motion of the cris tests. I
actually clean-up the errors in the next patch but didn't want to
merge them together in-case something got missed in the noise.

The following patches need review
  patch 0004/tests tcg add gdb runner variant.patch
  patch 0005/tests tcg mips fix hello mips compilation.patch
  patch 0007/tests tcg xtensa enable system tests.patch
  patch 0009/tests docker add fedora cris cross compilers.patch
  patch 0010/tests tcg split cris tests into bare and libc dir.patch
  patch 0011/tests tcg cris cleanup sys.c.patch
  patch 0012/tests tcg cris comment out the ccs test.patch
  patch 0013/tests tcg cris align mul operations.patch
  patch 0014/tests tcg enable cris base user mode tests.patch
  patch 0015/.travis.yml separate softfloat from check tcg.patch
  patch 0016/.travis.yml add softmmu check tcg tests.patch

Alex Bennée (14):
  tests/tcg: add softmmu awareness to Makefile
  tests/tcg: enable tcg tests for softmmu
  tests/tcg: add QEMU_OPT option for test runner
  tests/tcg: add gdb runner variant
  tests/tcg/mips: fix hello-mips compilation
  tests/tcg/xtensa: enable system tests
  tests/docker: add fedora-cris-cross compilers
  tests/tcg: split cris tests into bare and libc directories
  tests/tcg/cris: cleanup sys.c
  tests/tcg/cris: comment out the ccs test
  tests/tcg/cris: align mul operations
  tests/tcg: enable cris base user-mode tests
  .travis.yml: separate softfloat from check-tcg
  .travis.yml: add softmmu check-tcg tests

Philippe Mathieu-Daudé (1):
  tests/docker: add debian-xtensa-cross image

Stefan Hajnoczi (1):
  tests/tcg/arm: add ARMv6-M UNDEFINED 32-bit instruction test

 .travis.yml                                   |  12 ++
 Makefile.target                               |   2 -
 tests/Makefile.include                        |   9 +-
 tests/docker/Makefile.include                 |   1 +
 .../dockerfiles/debian-xtensa-cross.docker    |  31 ++++
 .../dockerfiles/fedora-cris-cross.docker      |   8 +
 tests/tcg/Makefile                            |  25 ++-
 tests/tcg/Makefile.include                    |   2 +-
 tests/tcg/arm/Makefile.softmmu-target         |  29 +++
 tests/tcg/arm/test-armv6m-undef.S             | 154 ++++++++++++++++
 tests/tcg/arm/test-armv6m-undef.ld            |  21 +++
 tests/tcg/cris/Makefile                       | 168 ------------------
 tests/tcg/cris/Makefile.include               |   6 +
 tests/tcg/cris/Makefile.target                |  58 ++++++
 tests/tcg/cris/{ => bare}/check_addcv17.s     |   0
 tests/tcg/cris/{ => bare}/check_addi.s        |   0
 tests/tcg/cris/{ => bare}/check_addiv32.s     |   0
 tests/tcg/cris/{ => bare}/check_addm.s        |   0
 tests/tcg/cris/{ => bare}/check_addq.s        |   0
 tests/tcg/cris/{ => bare}/check_addr.s        |   0
 tests/tcg/cris/{ => bare}/check_addxc.s       |   0
 tests/tcg/cris/{ => bare}/check_addxm.s       |   0
 tests/tcg/cris/{ => bare}/check_addxr.s       |   0
 tests/tcg/cris/{ => bare}/check_andc.s        |   0
 tests/tcg/cris/{ => bare}/check_andm.s        |   0
 tests/tcg/cris/{ => bare}/check_andq.s        |   0
 tests/tcg/cris/{ => bare}/check_andr.s        |   0
 tests/tcg/cris/{ => bare}/check_asr.s         |   0
 tests/tcg/cris/{ => bare}/check_ba.s          |   0
 tests/tcg/cris/{ => bare}/check_bas.s         |   0
 tests/tcg/cris/{ => bare}/check_bcc.s         |   0
 tests/tcg/cris/{ => bare}/check_boundc.s      |   0
 tests/tcg/cris/{ => bare}/check_boundr.s      |   0
 tests/tcg/cris/{ => bare}/check_btst.s        |  14 +-
 tests/tcg/cris/{ => bare}/check_clearfv32.s   |   0
 tests/tcg/cris/{ => bare}/check_clrjmp1.s     |   0
 tests/tcg/cris/{ => bare}/check_cmp-2.s       |   0
 tests/tcg/cris/{ => bare}/check_cmpc.s        |   0
 tests/tcg/cris/{ => bare}/check_cmpm.s        |   0
 tests/tcg/cris/{ => bare}/check_cmpq.s        |   0
 tests/tcg/cris/{ => bare}/check_cmpr.s        |   0
 tests/tcg/cris/{ => bare}/check_cmpxc.s       |   0
 tests/tcg/cris/{ => bare}/check_cmpxm.s       |   0
 tests/tcg/cris/{ => bare}/check_dstep.s       |   0
 tests/tcg/cris/{ => bare}/check_jsr.s         |   0
 tests/tcg/cris/{ => bare}/check_lapc.s        |   0
 tests/tcg/cris/{ => bare}/check_lsl.s         |   0
 tests/tcg/cris/{ => bare}/check_lsr.s         |   0
 tests/tcg/cris/{ => bare}/check_mcp.s         |   0
 tests/tcg/cris/{ => bare}/check_movdelsr1.s   |   0
 tests/tcg/cris/{ => bare}/check_movecr.s      |   0
 tests/tcg/cris/{ => bare}/check_movei.s       |   0
 tests/tcg/cris/{ => bare}/check_movemr.s      |   0
 tests/tcg/cris/{ => bare}/check_movemrv32.s   |   0
 tests/tcg/cris/{ => bare}/check_mover.s       |   0
 tests/tcg/cris/{ => bare}/check_moverm.s      |   0
 tests/tcg/cris/{ => bare}/check_movmp.s       |   0
 tests/tcg/cris/{ => bare}/check_movpmv32.s    |   0
 tests/tcg/cris/{ => bare}/check_movpr.s       |   0
 tests/tcg/cris/{ => bare}/check_movprv32.s    |   0
 tests/tcg/cris/{ => bare}/check_movscr.s      |   0
 tests/tcg/cris/{ => bare}/check_movsm.s       |   0
 tests/tcg/cris/{ => bare}/check_movsr.s       |   0
 tests/tcg/cris/{ => bare}/check_movucr.s      |   0
 tests/tcg/cris/{ => bare}/check_movum.s       |   0
 tests/tcg/cris/{ => bare}/check_movur.s       |   0
 tests/tcg/cris/{ => bare}/check_mulv32.s      |   0
 tests/tcg/cris/{ => bare}/check_mulx.s        |  11 ++
 tests/tcg/cris/{ => bare}/check_neg.s         |   0
 tests/tcg/cris/{ => bare}/check_not.s         |   0
 tests/tcg/cris/{ => bare}/check_orc.s         |   0
 tests/tcg/cris/{ => bare}/check_orm.s         |   0
 tests/tcg/cris/{ => bare}/check_orq.s         |   0
 tests/tcg/cris/{ => bare}/check_orr.s         |   0
 tests/tcg/cris/{ => bare}/check_ret.s         |   0
 tests/tcg/cris/{ => bare}/check_scc.s         |   0
 tests/tcg/cris/{ => bare}/check_subc.s        |   0
 tests/tcg/cris/{ => bare}/check_subm.s        |   0
 tests/tcg/cris/{ => bare}/check_subq.s        |   0
 tests/tcg/cris/{ => bare}/check_subr.s        |   0
 tests/tcg/cris/{ => bare}/check_xarith.s      |   0
 tests/tcg/cris/{ => bare}/crt.s               |   0
 tests/tcg/cris/bare/sys.c                     |  59 ++++++
 tests/tcg/cris/{ => bare}/testutils.inc       |   0
 tests/tcg/cris/{ => libc}/check_abs.c         |   0
 tests/tcg/cris/{ => libc}/check_addc.c        |   0
 tests/tcg/cris/{ => libc}/check_addcm.c       |   0
 tests/tcg/cris/{ => libc}/check_addo.c        |   0
 tests/tcg/cris/{ => libc}/check_addoq.c       |   0
 tests/tcg/cris/{ => libc}/check_bound.c       |   0
 tests/tcg/cris/{ => libc}/check_ftag.c        |   0
 .../{ => libc}/check_gcctorture_pr28634-1.c   |   0
 .../{ => libc}/check_gcctorture_pr28634.c     |   0
 .../{ => libc}/check_glibc_kernelversion.c    |   0
 tests/tcg/cris/{ => libc}/check_hello.c       |   0
 tests/tcg/cris/{ => libc}/check_int64.c       |   0
 tests/tcg/cris/{ => libc}/check_lz.c          |   0
 tests/tcg/cris/{ => libc}/check_mapbrk.c      |   0
 tests/tcg/cris/{ => libc}/check_mmap1.c       |   0
 tests/tcg/cris/{ => libc}/check_mmap2.c       |   0
 tests/tcg/cris/{ => libc}/check_mmap3.c       |   0
 tests/tcg/cris/{ => libc}/check_moveq.c       |   0
 tests/tcg/cris/{ => libc}/check_openpf1.c     |   0
 tests/tcg/cris/{ => libc}/check_openpf2.c     |   0
 tests/tcg/cris/{ => libc}/check_openpf3.c     |   0
 tests/tcg/cris/{ => libc}/check_openpf5.c     |   0
 tests/tcg/cris/{ => libc}/check_settls1.c     |   0
 tests/tcg/cris/{ => libc}/check_sigalrm.c     |   0
 tests/tcg/cris/{ => libc}/check_stat1.c       |   0
 tests/tcg/cris/{ => libc}/check_stat2.c       |   0
 tests/tcg/cris/{ => libc}/check_stat3.c       |   0
 tests/tcg/cris/{ => libc}/check_stat4.c       |   0
 tests/tcg/cris/{ => libc}/check_swap.c        |   0
 tests/tcg/cris/{ => libc}/check_time2.c       |   0
 tests/tcg/cris/{ => libc}/crisutils.h         |   0
 tests/tcg/cris/{ => libc}/sys.c               |  74 ++++----
 tests/tcg/cris/{ => libc}/sys.h               |   0
 tests/tcg/mips/Makefile.target                |  11 +-
 tests/tcg/mips/hello-mips.c                   |   2 +-
 tests/tcg/xtensa/Makefile                     |  93 ----------
 tests/tcg/xtensa/Makefile.include             |  11 ++
 tests/tcg/xtensa/Makefile.softmmu-target      |  40 +++++
 122 files changed, 520 insertions(+), 321 deletions(-)
 create mode 100644 tests/docker/dockerfiles/debian-xtensa-cross.docker
 create mode 100644 tests/docker/dockerfiles/fedora-cris-cross.docker
 create mode 100644 tests/tcg/arm/Makefile.softmmu-target
 create mode 100644 tests/tcg/arm/test-armv6m-undef.S
 create mode 100644 tests/tcg/arm/test-armv6m-undef.ld
 delete mode 100644 tests/tcg/cris/Makefile
 create mode 100644 tests/tcg/cris/Makefile.include
 create mode 100644 tests/tcg/cris/Makefile.target
 rename tests/tcg/cris/{ => bare}/check_addcv17.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addi.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addiv32.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addq.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addxc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addxm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addxr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_andc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_andm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_andq.s (100%)
 rename tests/tcg/cris/{ => bare}/check_andr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_asr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_ba.s (100%)
 rename tests/tcg/cris/{ => bare}/check_bas.s (100%)
 rename tests/tcg/cris/{ => bare}/check_bcc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_boundc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_boundr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_btst.s (89%)
 rename tests/tcg/cris/{ => bare}/check_clearfv32.s (100%)
 rename tests/tcg/cris/{ => bare}/check_clrjmp1.s (100%)
 rename tests/tcg/cris/{ => bare}/check_cmp-2.s (100%)
 rename tests/tcg/cris/{ => bare}/check_cmpc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_cmpm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_cmpq.s (100%)
 rename tests/tcg/cris/{ => bare}/check_cmpr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_cmpxc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_cmpxm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_dstep.s (100%)
 rename tests/tcg/cris/{ => bare}/check_jsr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_lapc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_lsl.s (100%)
 rename tests/tcg/cris/{ => bare}/check_lsr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_mcp.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movdelsr1.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movecr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movei.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movemr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movemrv32.s (100%)
 rename tests/tcg/cris/{ => bare}/check_mover.s (100%)
 rename tests/tcg/cris/{ => bare}/check_moverm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movmp.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movpmv32.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movpr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movprv32.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movscr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movsm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movsr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movucr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movum.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movur.s (100%)
 rename tests/tcg/cris/{ => bare}/check_mulv32.s (100%)
 rename tests/tcg/cris/{ => bare}/check_mulx.s (98%)
 rename tests/tcg/cris/{ => bare}/check_neg.s (100%)
 rename tests/tcg/cris/{ => bare}/check_not.s (100%)
 rename tests/tcg/cris/{ => bare}/check_orc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_orm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_orq.s (100%)
 rename tests/tcg/cris/{ => bare}/check_orr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_ret.s (100%)
 rename tests/tcg/cris/{ => bare}/check_scc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_subc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_subm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_subq.s (100%)
 rename tests/tcg/cris/{ => bare}/check_subr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_xarith.s (100%)
 rename tests/tcg/cris/{ => bare}/crt.s (100%)
 create mode 100644 tests/tcg/cris/bare/sys.c
 rename tests/tcg/cris/{ => bare}/testutils.inc (100%)
 rename tests/tcg/cris/{ => libc}/check_abs.c (100%)
 rename tests/tcg/cris/{ => libc}/check_addc.c (100%)
 rename tests/tcg/cris/{ => libc}/check_addcm.c (100%)
 rename tests/tcg/cris/{ => libc}/check_addo.c (100%)
 rename tests/tcg/cris/{ => libc}/check_addoq.c (100%)
 rename tests/tcg/cris/{ => libc}/check_bound.c (100%)
 rename tests/tcg/cris/{ => libc}/check_ftag.c (100%)
 rename tests/tcg/cris/{ => libc}/check_gcctorture_pr28634-1.c (100%)
 rename tests/tcg/cris/{ => libc}/check_gcctorture_pr28634.c (100%)
 rename tests/tcg/cris/{ => libc}/check_glibc_kernelversion.c (100%)
 rename tests/tcg/cris/{ => libc}/check_hello.c (100%)
 rename tests/tcg/cris/{ => libc}/check_int64.c (100%)
 rename tests/tcg/cris/{ => libc}/check_lz.c (100%)
 rename tests/tcg/cris/{ => libc}/check_mapbrk.c (100%)
 rename tests/tcg/cris/{ => libc}/check_mmap1.c (100%)
 rename tests/tcg/cris/{ => libc}/check_mmap2.c (100%)
 rename tests/tcg/cris/{ => libc}/check_mmap3.c (100%)
 rename tests/tcg/cris/{ => libc}/check_moveq.c (100%)
 rename tests/tcg/cris/{ => libc}/check_openpf1.c (100%)
 rename tests/tcg/cris/{ => libc}/check_openpf2.c (100%)
 rename tests/tcg/cris/{ => libc}/check_openpf3.c (100%)
 rename tests/tcg/cris/{ => libc}/check_openpf5.c (100%)
 rename tests/tcg/cris/{ => libc}/check_settls1.c (100%)
 rename tests/tcg/cris/{ => libc}/check_sigalrm.c (100%)
 rename tests/tcg/cris/{ => libc}/check_stat1.c (100%)
 rename tests/tcg/cris/{ => libc}/check_stat2.c (100%)
 rename tests/tcg/cris/{ => libc}/check_stat3.c (100%)
 rename tests/tcg/cris/{ => libc}/check_stat4.c (100%)
 rename tests/tcg/cris/{ => libc}/check_swap.c (100%)
 rename tests/tcg/cris/{ => libc}/check_time2.c (100%)
 rename tests/tcg/cris/{ => libc}/crisutils.h (100%)
 rename tests/tcg/cris/{ => libc}/sys.c (69%)
 rename tests/tcg/cris/{ => libc}/sys.h (100%)
 delete mode 100644 tests/tcg/xtensa/Makefile
 create mode 100644 tests/tcg/xtensa/Makefile.include
 create mode 100644 tests/tcg/xtensa/Makefile.softmmu-target

-- 
2.20.1

^ permalink raw reply	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH v2 01/16] tests/tcg: add softmmu awareness to Makefile
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 02/16] tests/tcg: enable tcg tests for softmmu Alex Bennée
                   ` (15 subsequent siblings)
  16 siblings, 0 replies; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Alex Bennée, Richard Henderson

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
 tests/tcg/Makefile         | 17 ++++++++++++++++-
 tests/tcg/Makefile.include |  2 +-
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/tests/tcg/Makefile b/tests/tcg/Makefile
index bf06415390..55feab0f67 100644
--- a/tests/tcg/Makefile
+++ b/tests/tcg/Makefile
@@ -26,7 +26,7 @@
 #
 # We also accept SPEED=slow to enable slower running tests
 #
-# We also expect to be in the tests build dir for the FOO-linux-user.
+# We also expect to be in the tests build dir for the FOO-(linux-user|softmmu).
 #
 
 -include ../../config-host.mak
@@ -52,7 +52,11 @@ QEMU_CFLAGS=
 LDFLAGS=
 
 # The QEMU for this TARGET
+ifdef CONFIG_USER_ONLY
 QEMU=../qemu-$(TARGET_NAME)
+else
+QEMU=../qemu-system-$(TARGET_NAME)
+endif
 
 # If TCG debugging is enabled things are a lot slower
 ifeq ($(CONFIG_DEBUG_TCG),y)
@@ -61,6 +65,7 @@ else
 TIMEOUT=15
 endif
 
+ifdef CONFIG_USER_ONLY
 # The order we include is important. We include multiarch, base arch
 # and finally arch if it's not the same as base arch.
 -include $(SRC_PATH)/tests/tcg/multiarch/Makefile.target
@@ -77,6 +82,16 @@ endif
 
 %: %.c
 	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
+else
+# For softmmu targets we include a different Makefile fragement as the
+# build options for bare programs are usually pretty different. They
+# are expected to provide their own build recipes.
+-include $(SRC_PATH)/tests/tcg/$(TARGET_BASE_ARCH)/Makefile.softmmu-target
+ifneq ($(TARGET_BASE_ARCH),$(TARGET_NAME))
+-include $(SRC_PATH)/tests/tcg/$(TARGET_NAME)/Makefile.softmmu-target
+endif
+
+endif
 
 all: $(TESTS)
 
diff --git a/tests/tcg/Makefile.include b/tests/tcg/Makefile.include
index c581bd6ffc..73b5626fc5 100644
--- a/tests/tcg/Makefile.include
+++ b/tests/tcg/Makefile.include
@@ -67,7 +67,7 @@ endif
 ifneq ($(GUEST_BUILD),)
 guest-tests: $(GUEST_BUILD)
 
-run-guest-tests: guest-tests qemu-$(TARGET_NAME)
+run-guest-tests: guest-tests qemu-$(subst y,system-,$(CONFIG_SOFTMMU))$(TARGET_NAME)
 	$(call quiet-command, \
 	(cd tests && $(MAKE) -f $(TCG_MAKE) SPEED=$(SPEED) run), \
 	"RUN", "tests for $(TARGET_NAME)")
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH v2 02/16] tests/tcg: enable tcg tests for softmmu
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 01/16] tests/tcg: add softmmu awareness to Makefile Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 03/16] tests/tcg: add QEMU_OPT option for test runner Alex Bennée
                   ` (14 subsequent siblings)
  16 siblings, 0 replies; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Alex Bennée, Richard Henderson

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
 Makefile.target        | 2 --
 tests/Makefile.include | 7 +++----
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/Makefile.target b/Makefile.target
index 3b79e7074c..61b8be31a2 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -37,9 +37,7 @@ PROGS=$(QEMU_PROG) $(QEMU_PROGW)
 STPFILES=
 
 # Makefile Tests
-ifdef CONFIG_USER_ONLY
 include $(SRC_PATH)/tests/tcg/Makefile.include
-endif
 
 config-target.h: config-target.h-timestamp
 config-target.h-timestamp: config-target.mak
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 2187b0c5aa..f39b96e250 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -1030,10 +1030,9 @@ endif
 
 # Per guest TCG tests
 
-LINUX_USER_TARGETS=$(filter %-linux-user,$(TARGET_DIRS))
-BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(LINUX_USER_TARGETS))
-CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(LINUX_USER_TARGETS))
-RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(LINUX_USER_TARGETS))
+BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(TARGET_DIRS))
+CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(TARGET_DIRS))
+RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(TARGET_DIRS))
 
 ifeq ($(HAVE_USER_DOCKER),y)
 # Probe for the Docker Builds needed for each build
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH v2 03/16] tests/tcg: add QEMU_OPT option for test runner
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 01/16] tests/tcg: add softmmu awareness to Makefile Alex Bennée
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 02/16] tests/tcg: enable tcg tests for softmmu Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 04/16] tests/tcg: add gdb runner variant Alex Bennée
                   ` (13 subsequent siblings)
  16 siblings, 0 replies; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Alex Bennée, Richard Henderson

This will allow tests to modify the QEMU invocation with for example
different -cpu stazas without having to define a whole new set of
runner types.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

---
v2
  - default QEMU_OPTS to --monitor none for system emulation
---
 tests/tcg/Makefile | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tests/tcg/Makefile b/tests/tcg/Makefile
index 55feab0f67..097e6374ea 100644
--- a/tests/tcg/Makefile
+++ b/tests/tcg/Makefile
@@ -54,10 +54,13 @@ LDFLAGS=
 # The QEMU for this TARGET
 ifdef CONFIG_USER_ONLY
 QEMU=../qemu-$(TARGET_NAME)
+QEMU_OPTS=
 else
 QEMU=../qemu-system-$(TARGET_NAME)
+QEMU_OPTS=--monitor none
 endif
 
+
 # If TCG debugging is enabled things are a lot slower
 ifeq ($(CONFIG_DEBUG_TCG),y)
 TIMEOUT=45
@@ -108,7 +111,7 @@ RUN_TESTS=$(patsubst %,run-%, $(TESTS))
 RUN_TESTS+=$(EXTRA_RUNS)
 
 run-%: %
-	$(call run-test, $<, $(QEMU) $<, "$< on $(TARGET_NAME)")
+	$(call run-test, $<, $(QEMU) $(QEMU_OPTS) $<, "$< on $(TARGET_NAME)")
 
 .PHONY: run
 run: $(RUN_TESTS)
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH  v2 04/16] tests/tcg: add gdb runner variant
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
                   ` (2 preceding siblings ...)
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 03/16] tests/tcg: add QEMU_OPT option for test runner Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 05/16] tests/tcg/mips: fix hello-mips compilation Alex Bennée
                   ` (12 subsequent siblings)
  16 siblings, 0 replies; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Alex Bennée

With this you can launch a test in gdb with:

  cd $(BUILD)/tests
  make -f $(SRC)/tests/tcg/Makefile gdb-$(TEST_NAME)

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/tcg/Makefile | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tests/tcg/Makefile b/tests/tcg/Makefile
index 097e6374ea..47f4298e68 100644
--- a/tests/tcg/Makefile
+++ b/tests/tcg/Makefile
@@ -113,6 +113,9 @@ RUN_TESTS+=$(EXTRA_RUNS)
 run-%: %
 	$(call run-test, $<, $(QEMU) $(QEMU_OPTS) $<, "$< on $(TARGET_NAME)")
 
+gdb-%: %
+	gdb --args $(QEMU) $(QEMU_OPTS) $<
+
 .PHONY: run
 run: $(RUN_TESTS)
 
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH v2 05/16] tests/tcg/mips: fix hello-mips compilation
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
                   ` (3 preceding siblings ...)
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 04/16] tests/tcg: add gdb runner variant Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 22:42   ` Philippe Mathieu-Daudé
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 06/16] tests/docker: add debian-xtensa-cross image Alex Bennée
                   ` (11 subsequent siblings)
  16 siblings, 1 reply; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Alex Bennée

The compilation flags for proper building are in the source tree. We
also fix exit to 0 so the result is counted as a success.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/tcg/mips/Makefile.target | 11 ++++-------
 tests/tcg/mips/hello-mips.c    |  2 +-
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/tests/tcg/mips/Makefile.target b/tests/tcg/mips/Makefile.target
index 086625f533..1a994d5525 100644
--- a/tests/tcg/mips/Makefile.target
+++ b/tests/tcg/mips/Makefile.target
@@ -8,15 +8,12 @@ MIPS_SRC=$(SRC_PATH)/tests/tcg/mips
 # Set search path for all sources
 VPATH 		+= $(MIPS_SRC)
 
+# hello-mips is 32 bit only
+ifeq ($(findstring 64,$(TARGET_NAME)),)
 MIPS_TESTS=hello-mips
 
 TESTS += $(MIPS_TESTS)
 
-hello-mips: CFLAGS+=-ffreestanding
+hello-mips: CFLAGS+=-mno-abicalls -fno-PIC -mabi=32
 hello-mips: LDFLAGS+=-nostdlib
-
-# For MIPS32 and 64 we have a bunch of extra tests in sub-directories
-# however they are intended for system tests.
-
-run-hello-mips: hello-mips
-	$(call skip-test, $<, "BROKEN")
+endif
diff --git a/tests/tcg/mips/hello-mips.c b/tests/tcg/mips/hello-mips.c
index c7052fdf2e..4e1cf501af 100644
--- a/tests/tcg/mips/hello-mips.c
+++ b/tests/tcg/mips/hello-mips.c
@@ -60,5 +60,5 @@ static inline int write(int fd, const char *buf, int len)
 void __start(void)
 {
     write (1, "Hello, World!\n", 14);
-    exit1 (42);
+    exit1(0);
 }
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH v2 06/16] tests/docker: add debian-xtensa-cross image
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
                   ` (4 preceding siblings ...)
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 05/16] tests/tcg/mips: fix hello-mips compilation Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 07/16] tests/tcg/xtensa: enable system tests Alex Bennée
                   ` (10 subsequent siblings)
  16 siblings, 0 replies; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Philippe Mathieu-Daudé,
	Alex Bennée

From: Philippe Mathieu-Daudé <f4bug@amsat.org>

Xtensa cpu supported:
- dc232b
- dc233c
- csp

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
v2
  - the compiler only works for system tests (no libc)
---
 .../dockerfiles/debian-xtensa-cross.docker    | 31 +++++++++++++++++++
 tests/tcg/xtensa/Makefile.include             | 11 +++++++
 2 files changed, 42 insertions(+)
 create mode 100644 tests/docker/dockerfiles/debian-xtensa-cross.docker
 create mode 100644 tests/tcg/xtensa/Makefile.include

diff --git a/tests/docker/dockerfiles/debian-xtensa-cross.docker b/tests/docker/dockerfiles/debian-xtensa-cross.docker
new file mode 100644
index 0000000000..afd2ab9163
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-xtensa-cross.docker
@@ -0,0 +1,31 @@
+#
+# Docker cross-compiler target
+#
+# This docker target builds on the debian stretch base image,
+# using a prebuilt toolchains for Xtensa cores from:
+# https://github.com/foss-xtensa/toolchain/releases
+#
+FROM debian:stretch-slim
+
+RUN apt-get update && \
+    DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata
+RUN DEBIAN_FRONTEND=noninteractive eatmydata \
+    apt-get install -y --no-install-recommends \
+        bison \
+        build-essential \
+        ca-certificates \
+        curl \
+        flex \
+        gettext \
+        git \
+        python-minimal
+
+ENV CPU_LIST csp dc232b dc233c
+ENV TOOLCHAIN_RELEASE 2018.02
+
+RUN for cpu in $CPU_LIST; do \
+        curl -#SL http://github.com/foss-xtensa/toolchain/releases/download/$TOOLCHAIN_RELEASE/x86_64-$TOOLCHAIN_RELEASE-xtensa-$cpu-elf.tar.gz \
+        | tar -xzC /opt; \
+    done
+
+ENV PATH $PATH:/opt/$TOOLCHAIN_RELEASE/xtensa-dc232b-elf/bin:/opt/$TOOLCHAIN_RELEASE/xtensa-dc233c-elf/bin:/opt/$TOOLCHAIN_RELEASE/xtensa-csp-elf/bin
diff --git a/tests/tcg/xtensa/Makefile.include b/tests/tcg/xtensa/Makefile.include
new file mode 100644
index 0000000000..423c00a5d3
--- /dev/null
+++ b/tests/tcg/xtensa/Makefile.include
@@ -0,0 +1,11 @@
+# Makefile.include for xtensa targets
+#
+# The compilers can only be used for building system tests
+
+ifeq ($(CONFIG_SOFTMMU),y)
+DOCKER_IMAGE=debian-xtensa-cross
+
+# default to the dc232b cpu
+DOCKER_CROSS_COMPILER=/opt/2018.02/xtensa-dc232b-elf/bin/xtensa-dc232b-elf-gcc
+DOCKER_CROSS_LINKER=/opt/2018.02/xtensa-dc232b-elf/bin/xtensa-dc232b-elf-ld
+endif
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH v2 07/16] tests/tcg/xtensa: enable system tests
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
                   ` (5 preceding siblings ...)
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 06/16] tests/docker: add debian-xtensa-cross image Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 22:54   ` Philippe Mathieu-Daudé
  2019-02-28 23:29   ` Max Filippov
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 08/16] tests/tcg/arm: add ARMv6-M UNDEFINED 32-bit instruction test Alex Bennée
                   ` (9 subsequent siblings)
  16 siblings, 2 replies; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Alex Bennée

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
v2
  - use cross CC for linker
  - fix up test selection to skip linker.ld.S
---
 tests/tcg/xtensa/Makefile                | 93 ------------------------
 tests/tcg/xtensa/Makefile.softmmu-target | 40 ++++++++++
 2 files changed, 40 insertions(+), 93 deletions(-)
 delete mode 100644 tests/tcg/xtensa/Makefile
 create mode 100644 tests/tcg/xtensa/Makefile.softmmu-target

diff --git a/tests/tcg/xtensa/Makefile b/tests/tcg/xtensa/Makefile
deleted file mode 100644
index 2f5691f75b..0000000000
--- a/tests/tcg/xtensa/Makefile
+++ /dev/null
@@ -1,93 +0,0 @@
--include ../../../config-host.mak
-
-CORE=dc232b
-CROSS=xtensa-$(CORE)-elf-
-
-ifndef XT
-SIM = ../../../xtensa-softmmu/qemu-system-xtensa
-SIMFLAGS = -M sim -cpu $(CORE) -nographic -semihosting -icount 6 $(EXTFLAGS) -kernel
-SIMDEBUG = -s -S
-else
-SIM = xt-run
-SIMFLAGS = --xtensa-core=DC_B_232L --exit_with_target_code $(EXTFLAGS)
-SIMDEBUG = --gdbserve=0
-endif
-
-HOST_CC = gcc
-CC      = $(CROSS)gcc
-AS      = $(CROSS)gcc -x assembler-with-cpp
-LD      = $(CROSS)ld
-
-XTENSA_SRC_PATH = $(SRC_PATH)/tests/tcg/xtensa
-INCLUDE_DIRS = $(XTENSA_SRC_PATH) $(SRC_PATH)/target/xtensa/core-$(CORE)
-XTENSA_INC = $(addprefix -I,$(INCLUDE_DIRS))
-
-LDFLAGS = -Tlinker.ld
-
-CRT        = crt.o vectors.o
-
-TESTCASES += test_b.tst
-TESTCASES += test_bi.tst
-#TESTCASES += test_boolean.tst
-TESTCASES += test_break.tst
-TESTCASES += test_bz.tst
-TESTCASES += test_cache.tst
-TESTCASES += test_clamps.tst
-TESTCASES += test_extui.tst
-TESTCASES += test_fail.tst
-TESTCASES += test_interrupt.tst
-TESTCASES += test_loop.tst
-TESTCASES += test_mac16.tst
-TESTCASES += test_max.tst
-TESTCASES += test_min.tst
-TESTCASES += test_mmu.tst
-TESTCASES += test_mul16.tst
-TESTCASES += test_mul32.tst
-TESTCASES += test_nsa.tst
-TESTCASES += test_phys_mem.tst
-ifdef XT
-TESTCASES += test_pipeline.tst
-endif
-TESTCASES += test_quo.tst
-TESTCASES += test_rem.tst
-TESTCASES += test_rst0.tst
-TESTCASES += test_s32c1i.tst
-TESTCASES += test_sar.tst
-TESTCASES += test_sext.tst
-TESTCASES += test_shift.tst
-TESTCASES += test_sr.tst
-TESTCASES += test_timer.tst
-TESTCASES += test_windowed.tst
-
-all: build
-
-linker.ld: $(XTENSA_SRC_PATH)/linker.ld.S
-	$(HOST_CC) $(XTENSA_INC) -E -P $< -o $@
-
-%.o: $(XTENSA_SRC_PATH)/%.c
-	$(CC) $(XTENSA_INC) $(CFLAGS) -c $< -o $@
-
-%.o: $(XTENSA_SRC_PATH)/%.S
-	$(CC) $(XTENSA_INC) $(ASFLAGS) -c $< -o $@
-
-%.tst: %.o linker.ld $(XTENSA_SRC_PATH)/macros.inc $(CRT) Makefile
-	$(LD) $(LDFLAGS) $(NOSTDFLAGS) $(CRT) $< -o $@
-
-build: $(TESTCASES)
-
-check: $(addprefix run-, $(TESTCASES))
-
-run-%.tst: %.tst
-	$(SIM) $(SIMFLAGS) ./$<
-
-run-test_fail.tst: test_fail.tst
-	! $(SIM) $(SIMFLAGS) ./$<
-
-debug-%.tst: %.tst
-	$(SIM) $(SIMDEBUG) $(SIMFLAGS) ./$<
-
-host-debug-%.tst: %.tst
-	gdb --args $(SIM) $(SIMFLAGS) ./$<
-
-clean:
-	$(RM) -fr $(TESTCASES) $(CRT) linker.ld
diff --git a/tests/tcg/xtensa/Makefile.softmmu-target b/tests/tcg/xtensa/Makefile.softmmu-target
new file mode 100644
index 0000000000..1a4014506f
--- /dev/null
+++ b/tests/tcg/xtensa/Makefile.softmmu-target
@@ -0,0 +1,40 @@
+#
+# Xtensa softmmu tests
+#
+
+ifneq ($(TARGET_WORDS_BIGENDIAN),y)
+
+XTENSA_SRC = $(SRC_PATH)/tests/tcg/xtensa
+XTENSA_ALL = $(filter-out $(XTENSA_SRC)/linker.ld.S,$(wildcard $(XTENSA_SRC)/*.S))
+XTENSA_TESTS = $(patsubst $(XTENSA_SRC)/%.S, %, $(XTENSA_ALL))
+# Filter out common blobs and broken tests
+XTENSA_BROKEN_TESTS  = crt vectors test_boolean test_pipeline test_fail
+XTENSA_USABLE_TESTS = $(filter-out $(XTENSA_BROKEN_TESTS), $(XTENSA_TESTS))
+
+# add to the list of tests
+TESTS += $(XTENSA_USABLE_TESTS)
+VPATH += $(XTENSA_SRC)
+
+CORE=dc232b
+QEMU_OPTS+=-M sim -cpu $(CORE) -nographic -semihosting -icount 6 $(EXTFLAGS) -kernel
+
+INCLUDE_DIRS = $(SRC_PATH)/target/xtensa/core-$(CORE)
+XTENSA_INC = $(addprefix -I,$(INCLUDE_DIRS))
+
+LDFLAGS = -Tlinker.ld -nostartfiles -nostdlib
+
+CRT        = crt.o vectors.o
+
+linker.ld: linker.ld.S
+	$(CC) $(XTENSA_INC) -E -P $< -o $@
+
+$(XTENSA_USABLE_TESTS): linker.ld macros.inc $(CRT) Makefile.softmmu-target
+
+# special rule for common blobs
+%.o: %.S
+	$(CC) $(XTENSA_INC) $(ASFLAGS) -c $< -o $@
+
+%: %.S
+	$(CC) $(XTENSA_INC) $(ASFLAGS) $< -o $@ $(LDFLAGS) $(NOSTDFLAGS) $(CRT)
+
+endif
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH v2 08/16] tests/tcg/arm: add ARMv6-M UNDEFINED 32-bit instruction test
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
                   ` (6 preceding siblings ...)
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 07/16] tests/tcg/xtensa: enable system tests Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 22:56   ` Philippe Mathieu-Daudé
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 09/16] tests/docker: add fedora-cris-cross compilers Alex Bennée
                   ` (8 subsequent siblings)
  16 siblings, 1 reply; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel
  Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Stefan Hajnoczi, Alex Bennée

From: Stefan Hajnoczi <stefanha@redhat.com>

Test that 32-bit instructions declared UNDEFINED in the ARMv6-M
Reference Manual really do raise an exception.  Also test that the 6
32-bit instructions defined in the ARMv6-M Reference Manual do not raise
an exception.

Based-on: <20181029194519.15628-1-stefanha@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20181129185113.30353-1-stefanha@redhat.com>
[AJB: integrated into system tests]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
v2
  - added to series
  - used softmmu-target Makefile with single compile/link step
  - launches with -kernel
  - drop .hex file
---
 tests/tcg/arm/Makefile.softmmu-target |  29 +++++
 tests/tcg/arm/test-armv6m-undef.S     | 154 ++++++++++++++++++++++++++
 tests/tcg/arm/test-armv6m-undef.ld    |  21 ++++
 3 files changed, 204 insertions(+)
 create mode 100644 tests/tcg/arm/Makefile.softmmu-target
 create mode 100644 tests/tcg/arm/test-armv6m-undef.S
 create mode 100644 tests/tcg/arm/test-armv6m-undef.ld

diff --git a/tests/tcg/arm/Makefile.softmmu-target b/tests/tcg/arm/Makefile.softmmu-target
new file mode 100644
index 0000000000..49d48d8a1c
--- /dev/null
+++ b/tests/tcg/arm/Makefile.softmmu-target
@@ -0,0 +1,29 @@
+# -*- Mode: makefile -*-
+#
+# ARM SoftMMU tests - included from tests/tcg/Makefile
+#
+
+ifeq ($(TARGET_ABI_DIR),arm)
+
+ARM_SRC=$(SRC_PATH)/tests/tcg/arm
+
+# Set search path for all sources
+VPATH 		+= $(ARM_SRC)
+
+ARM_TESTS=test-armv6m-undef
+
+TESTS += $(ARM_TESTS)
+
+CFLAGS+=-Wl,--build-id=none -x assembler-with-cpp
+LDFLAGS+=-nostdlib -N -static
+
+%: %.S %.ld
+	$(CC) $(CFLAGS) $(ASFLAGS) $< -o $@ $(LDFLAGS) -T $(ARM_SRC)/$@.ld
+
+# Specific Test Rules
+
+test-armv6m-undef: EXTRA_CFLAGS+=-mcpu=cortex-m0
+
+run-test-armv6m-undef: QEMU_OPTS+=-semihosting -M microbit -kernel
+
+endif
diff --git a/tests/tcg/arm/test-armv6m-undef.S b/tests/tcg/arm/test-armv6m-undef.S
new file mode 100644
index 0000000000..d18ca56b4a
--- /dev/null
+++ b/tests/tcg/arm/test-armv6m-undef.S
@@ -0,0 +1,154 @@
+/*
+ * Test ARMv6-M UNDEFINED 32-bit instructions
+ *
+ * Copyright 2018 Red Hat Inc.
+ *
+ * This work is licensed under the terms of the GNU GPL, version 2
+ * or later. See the COPYING file in the top-level directory.
+ */
+
+/*
+ * Test that UNDEFINED 32-bit instructions fault as expected.  This is an
+ * interesting test because ARMv6-M shares code with its more fully-featured
+ * siblings and it's necessary to verify that its limited instruction set is
+ * emulated correctly.
+ *
+ * The emulator must be invoked with -semihosting so that the test case can
+ * terminate with exit code 0 on success or 1 on failure.
+ *
+ * Failures can be debugged with -d in_asm,int,exec,cpu and the
+ * gdbstub (-S -s).
+ */
+
+.syntax unified
+.cpu cortex-m0
+.thumb
+
+/*
+ * Memory map
+ */
+#define SRAM_BASE 0x20000000
+#define SRAM_SIZE (16 * 1024)
+
+/*
+ * Semihosting interface on ARM T32
+ * See "Semihosting for AArch32 and AArch64 Version 2.0 Documentation" by ARM
+ */
+#define semihosting_call bkpt 0xab
+#define SYS_EXIT 0x18
+
+vector_table:
+    .word SRAM_BASE + SRAM_SIZE /* 0. SP_main */
+    .word exc_reset_thumb       /* 1. Reset */
+    .word 0                     /* 2. NMI */
+    .word exc_hard_fault_thumb  /* 3. HardFault */
+    .rept 7
+    .word 0                     /* 4-10. Reserved */
+    .endr
+    .word 0                     /* 11. SVCall */
+    .word 0                     /* 12. Reserved */
+    .word 0                     /* 13. Reserved */
+    .word 0                     /* 14. PendSV */
+    .word 0                     /* 15. SysTick */
+    .rept 32
+    .word 0                     /* 16-47. External Interrupts */
+    .endr
+
+exc_reset:
+.equ exc_reset_thumb, exc_reset + 1
+.global exc_reset_thumb
+    /* The following 32-bit UNDEFINED instructions are tested by executing
+     * them.  The HardFault exception handler should execute and return to
+     * the next test case.  If no exception is raised the test fails.
+     */
+
+    /* Table A5-9 32-bit Thumb encoding */
+    .short 0b1110100000000000
+    .short 0b0000000000000000
+    b not_reached
+    .short 0b1110100000000000
+    .short 0b1000000000000000
+    b not_reached
+    .short 0b1111100000000000
+    .short 0b0000000000000000
+    b not_reached
+    .short 0b1111100000000000
+    .short 0b1000000000000000
+    b not_reached
+    .short 0b1111000000000000
+    .short 0b0000000000000000
+    b not_reached
+
+    /* Table A5-10 Branch and miscellaneous control instructions */
+    .short 0b1111011111110000
+    .short 0b1010000000000000
+    b not_reached
+
+    /* The following are valid 32-bit instructions that must not raise a
+     * HardFault.
+     */
+
+    /* B4.2.3 Move to Special Register (moves to IPSR are ignored) */
+    msr ipsr, r0
+    b 1f
+    b not_reached
+1:
+    /* B4.2.2 Move from Special Register */
+    mrs r0, ipsr
+    b 1f
+    b not_reached
+1:
+    /* A6.7.13 Branch with Link (immediate) */
+    bl 1f
+1:
+    b 1f
+    b not_reached
+1:
+    /* A6.7.21 Data Memory Barrier */
+    dmb
+    b 1f
+    b not_reached
+1:
+    /* A6.7.22 Data Synchronization Barrier */
+    dsb
+    b 1f
+    b not_reached
+1:
+    /* A6.7.24 Instruction Memory Barrier */
+    isb
+    b 1f
+    b not_reached
+1:
+
+    /* Success! */
+    movs r0, 1
+    b exit
+
+not_reached: /* Failure :( */
+    movs r0, 0
+    b exit
+
+/* When a HardFault occurs, return to pc+6 (test cases are 3 halfwords long) */
+exc_hard_fault:
+.equ exc_hard_fault_thumb, exc_hard_fault + 1
+.global exc_hard_fault_thumb
+    ldr r0, [sp, 0x18]
+    adds r0, 6
+    str r0, [sp, 0x18]
+    bx lr
+
+/*
+ * exit: Terminate emulator
+ * @r0: 0 - failure, 1 - success
+ */
+exit:
+    movs r1, 0
+    cmp r0, 1
+    bne 1f
+    ldr r1, ADP_Stopped_ApplicationExit
+1:
+    movs r0, SYS_EXIT
+    semihosting_call
+.align 2
+ADP_Stopped_ApplicationExit:
+    .word 0x20026
diff --git a/tests/tcg/arm/test-armv6m-undef.ld b/tests/tcg/arm/test-armv6m-undef.ld
new file mode 100644
index 0000000000..43dbbf17d5
--- /dev/null
+++ b/tests/tcg/arm/test-armv6m-undef.ld
@@ -0,0 +1,21 @@
+ENTRY(exc_reset_thumb)
+
+SECTIONS
+{
+    . = 0x0;
+    .text : {
+        *(.text)
+    }
+    .data : {
+        *(.data)
+    }
+    .rodata : {
+        *(.rodata)
+    }
+    .bss : {
+        *(.bss)
+    }
+    /DISCARD/ : {
+        *(.ARM.attributes)
+    }
+}
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH v2 09/16] tests/docker: add fedora-cris-cross compilers
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
                   ` (7 preceding siblings ...)
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 08/16] tests/tcg/arm: add ARMv6-M UNDEFINED 32-bit instruction test Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 10/16] tests/tcg: split cris tests into bare and libc directories Alex Bennée
                   ` (7 subsequent siblings)
  16 siblings, 0 replies; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Alex Bennée

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/dockerfiles/fedora-cris-cross.docker | 8 ++++++++
 1 file changed, 8 insertions(+)
 create mode 100644 tests/docker/dockerfiles/fedora-cris-cross.docker

diff --git a/tests/docker/dockerfiles/fedora-cris-cross.docker b/tests/docker/dockerfiles/fedora-cris-cross.docker
new file mode 100644
index 0000000000..b168ada615
--- /dev/null
+++ b/tests/docker/dockerfiles/fedora-cris-cross.docker
@@ -0,0 +1,8 @@
+#
+# Cross compiler for cris system tests
+#
+
+FROM fedora:latest
+ENV PACKAGES gcc-cris-linux-gnu
+RUN dnf install -y $PACKAGES
+RUN rpm -q $PACKAGES | sort > /packages.txt
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH v2 10/16] tests/tcg: split cris tests into bare and libc directories
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
                   ` (8 preceding siblings ...)
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 09/16] tests/docker: add fedora-cris-cross compilers Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 23:07   ` Philippe Mathieu-Daudé
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 11/16] tests/tcg/cris: cleanup sys.c Alex Bennée
                   ` (6 subsequent siblings)
  16 siblings, 1 reply; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Alex Bennée

Bare tests are standalone assembly tests that don't require linking to
any libc and hence can be built with kernel only compilers. The libc
tests need a compiler capable of building properly linked userspace
binaries. As we don't have such a cross compiler at the moment we
won't be building those tests.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
v2
  - split between bare/libc instead of system/user
---
 tests/tcg/cris/{ => bare}/check_addcv17.s     |  0
 tests/tcg/cris/{ => bare}/check_addi.s        |  0
 tests/tcg/cris/{ => bare}/check_addiv32.s     |  0
 tests/tcg/cris/{ => bare}/check_addm.s        |  0
 tests/tcg/cris/{ => bare}/check_addq.s        |  0
 tests/tcg/cris/{ => bare}/check_addr.s        |  0
 tests/tcg/cris/{ => bare}/check_addxc.s       |  0
 tests/tcg/cris/{ => bare}/check_addxm.s       |  0
 tests/tcg/cris/{ => bare}/check_addxr.s       |  0
 tests/tcg/cris/{ => bare}/check_andc.s        |  0
 tests/tcg/cris/{ => bare}/check_andm.s        |  0
 tests/tcg/cris/{ => bare}/check_andq.s        |  0
 tests/tcg/cris/{ => bare}/check_andr.s        |  0
 tests/tcg/cris/{ => bare}/check_asr.s         |  0
 tests/tcg/cris/{ => bare}/check_ba.s          |  0
 tests/tcg/cris/{ => bare}/check_bas.s         |  0
 tests/tcg/cris/{ => bare}/check_bcc.s         |  0
 tests/tcg/cris/{ => bare}/check_boundc.s      |  0
 tests/tcg/cris/{ => bare}/check_boundr.s      |  0
 tests/tcg/cris/{ => bare}/check_btst.s        |  0
 tests/tcg/cris/{ => bare}/check_clearfv32.s   |  0
 tests/tcg/cris/{ => bare}/check_clrjmp1.s     |  0
 tests/tcg/cris/{ => bare}/check_cmp-2.s       |  0
 tests/tcg/cris/{ => bare}/check_cmpc.s        |  0
 tests/tcg/cris/{ => bare}/check_cmpm.s        |  0
 tests/tcg/cris/{ => bare}/check_cmpq.s        |  0
 tests/tcg/cris/{ => bare}/check_cmpr.s        |  0
 tests/tcg/cris/{ => bare}/check_cmpxc.s       |  0
 tests/tcg/cris/{ => bare}/check_cmpxm.s       |  0
 tests/tcg/cris/{ => bare}/check_dstep.s       |  0
 tests/tcg/cris/{ => bare}/check_jsr.s         |  0
 tests/tcg/cris/{ => bare}/check_lapc.s        |  0
 tests/tcg/cris/{ => bare}/check_lsl.s         |  0
 tests/tcg/cris/{ => bare}/check_lsr.s         |  0
 tests/tcg/cris/{ => bare}/check_mcp.s         |  0
 tests/tcg/cris/{ => bare}/check_movdelsr1.s   |  0
 tests/tcg/cris/{ => bare}/check_movecr.s      |  0
 tests/tcg/cris/{ => bare}/check_movei.s       |  0
 tests/tcg/cris/{ => bare}/check_movemr.s      |  0
 tests/tcg/cris/{ => bare}/check_movemrv32.s   |  0
 tests/tcg/cris/{ => bare}/check_mover.s       |  0
 tests/tcg/cris/{ => bare}/check_moverm.s      |  0
 tests/tcg/cris/{ => bare}/check_movmp.s       |  0
 tests/tcg/cris/{ => bare}/check_movpmv32.s    |  0
 tests/tcg/cris/{ => bare}/check_movpr.s       |  0
 tests/tcg/cris/{ => bare}/check_movprv32.s    |  0
 tests/tcg/cris/{ => bare}/check_movscr.s      |  0
 tests/tcg/cris/{ => bare}/check_movsm.s       |  0
 tests/tcg/cris/{ => bare}/check_movsr.s       |  0
 tests/tcg/cris/{ => bare}/check_movucr.s      |  0
 tests/tcg/cris/{ => bare}/check_movum.s       |  0
 tests/tcg/cris/{ => bare}/check_movur.s       |  0
 tests/tcg/cris/{ => bare}/check_mulv32.s      |  0
 tests/tcg/cris/{ => bare}/check_mulx.s        |  0
 tests/tcg/cris/{ => bare}/check_neg.s         |  0
 tests/tcg/cris/{ => bare}/check_not.s         |  0
 tests/tcg/cris/{ => bare}/check_orc.s         |  0
 tests/tcg/cris/{ => bare}/check_orm.s         |  0
 tests/tcg/cris/{ => bare}/check_orq.s         |  0
 tests/tcg/cris/{ => bare}/check_orr.s         |  0
 tests/tcg/cris/{ => bare}/check_ret.s         |  0
 tests/tcg/cris/{ => bare}/check_scc.s         |  0
 tests/tcg/cris/{ => bare}/check_subc.s        |  0
 tests/tcg/cris/{ => bare}/check_subm.s        |  0
 tests/tcg/cris/{ => bare}/check_subq.s        |  0
 tests/tcg/cris/{ => bare}/check_subr.s        |  0
 tests/tcg/cris/{ => bare}/check_xarith.s      |  0
 tests/tcg/cris/{ => bare}/crt.s               |  0
 tests/tcg/cris/{ => bare}/sys.c               |  0
 tests/tcg/cris/{ => bare}/testutils.inc       |  0
 tests/tcg/cris/{ => libc}/check_abs.c         |  0
 tests/tcg/cris/{ => libc}/check_addc.c        |  0
 tests/tcg/cris/{ => libc}/check_addcm.c       |  0
 tests/tcg/cris/{ => libc}/check_addo.c        |  0
 tests/tcg/cris/{ => libc}/check_addoq.c       |  0
 tests/tcg/cris/{ => libc}/check_bound.c       |  0
 tests/tcg/cris/{ => libc}/check_ftag.c        |  0
 .../{ => libc}/check_gcctorture_pr28634-1.c   |  0
 .../{ => libc}/check_gcctorture_pr28634.c     |  0
 .../{ => libc}/check_glibc_kernelversion.c    |  0
 tests/tcg/cris/{ => libc}/check_hello.c       |  0
 tests/tcg/cris/{ => libc}/check_int64.c       |  0
 tests/tcg/cris/{ => libc}/check_lz.c          |  0
 tests/tcg/cris/{ => libc}/check_mapbrk.c      |  0
 tests/tcg/cris/{ => libc}/check_mmap1.c       |  0
 tests/tcg/cris/{ => libc}/check_mmap2.c       |  0
 tests/tcg/cris/{ => libc}/check_mmap3.c       |  0
 tests/tcg/cris/{ => libc}/check_moveq.c       |  0
 tests/tcg/cris/{ => libc}/check_openpf1.c     |  0
 tests/tcg/cris/{ => libc}/check_openpf2.c     |  0
 tests/tcg/cris/{ => libc}/check_openpf3.c     |  0
 tests/tcg/cris/{ => libc}/check_openpf5.c     |  0
 tests/tcg/cris/{ => libc}/check_settls1.c     |  0
 tests/tcg/cris/{ => libc}/check_sigalrm.c     |  0
 tests/tcg/cris/{ => libc}/check_stat1.c       |  0
 tests/tcg/cris/{ => libc}/check_stat2.c       |  0
 tests/tcg/cris/{ => libc}/check_stat3.c       |  0
 tests/tcg/cris/{ => libc}/check_stat4.c       |  0
 tests/tcg/cris/{ => libc}/check_swap.c        |  0
 tests/tcg/cris/{ => libc}/check_time2.c       |  0
 tests/tcg/cris/{ => libc}/crisutils.h         |  0
 tests/tcg/cris/libc/sys.c                     | 58 +++++++++++++++++++
 tests/tcg/cris/{ => libc}/sys.h               |  0
 103 files changed, 58 insertions(+)
 rename tests/tcg/cris/{ => bare}/check_addcv17.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addi.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addiv32.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addq.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addxc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addxm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_addxr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_andc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_andm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_andq.s (100%)
 rename tests/tcg/cris/{ => bare}/check_andr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_asr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_ba.s (100%)
 rename tests/tcg/cris/{ => bare}/check_bas.s (100%)
 rename tests/tcg/cris/{ => bare}/check_bcc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_boundc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_boundr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_btst.s (100%)
 rename tests/tcg/cris/{ => bare}/check_clearfv32.s (100%)
 rename tests/tcg/cris/{ => bare}/check_clrjmp1.s (100%)
 rename tests/tcg/cris/{ => bare}/check_cmp-2.s (100%)
 rename tests/tcg/cris/{ => bare}/check_cmpc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_cmpm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_cmpq.s (100%)
 rename tests/tcg/cris/{ => bare}/check_cmpr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_cmpxc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_cmpxm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_dstep.s (100%)
 rename tests/tcg/cris/{ => bare}/check_jsr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_lapc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_lsl.s (100%)
 rename tests/tcg/cris/{ => bare}/check_lsr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_mcp.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movdelsr1.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movecr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movei.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movemr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movemrv32.s (100%)
 rename tests/tcg/cris/{ => bare}/check_mover.s (100%)
 rename tests/tcg/cris/{ => bare}/check_moverm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movmp.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movpmv32.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movpr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movprv32.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movscr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movsm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movsr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movucr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movum.s (100%)
 rename tests/tcg/cris/{ => bare}/check_movur.s (100%)
 rename tests/tcg/cris/{ => bare}/check_mulv32.s (100%)
 rename tests/tcg/cris/{ => bare}/check_mulx.s (100%)
 rename tests/tcg/cris/{ => bare}/check_neg.s (100%)
 rename tests/tcg/cris/{ => bare}/check_not.s (100%)
 rename tests/tcg/cris/{ => bare}/check_orc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_orm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_orq.s (100%)
 rename tests/tcg/cris/{ => bare}/check_orr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_ret.s (100%)
 rename tests/tcg/cris/{ => bare}/check_scc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_subc.s (100%)
 rename tests/tcg/cris/{ => bare}/check_subm.s (100%)
 rename tests/tcg/cris/{ => bare}/check_subq.s (100%)
 rename tests/tcg/cris/{ => bare}/check_subr.s (100%)
 rename tests/tcg/cris/{ => bare}/check_xarith.s (100%)
 rename tests/tcg/cris/{ => bare}/crt.s (100%)
 rename tests/tcg/cris/{ => bare}/sys.c (100%)
 rename tests/tcg/cris/{ => bare}/testutils.inc (100%)
 rename tests/tcg/cris/{ => libc}/check_abs.c (100%)
 rename tests/tcg/cris/{ => libc}/check_addc.c (100%)
 rename tests/tcg/cris/{ => libc}/check_addcm.c (100%)
 rename tests/tcg/cris/{ => libc}/check_addo.c (100%)
 rename tests/tcg/cris/{ => libc}/check_addoq.c (100%)
 rename tests/tcg/cris/{ => libc}/check_bound.c (100%)
 rename tests/tcg/cris/{ => libc}/check_ftag.c (100%)
 rename tests/tcg/cris/{ => libc}/check_gcctorture_pr28634-1.c (100%)
 rename tests/tcg/cris/{ => libc}/check_gcctorture_pr28634.c (100%)
 rename tests/tcg/cris/{ => libc}/check_glibc_kernelversion.c (100%)
 rename tests/tcg/cris/{ => libc}/check_hello.c (100%)
 rename tests/tcg/cris/{ => libc}/check_int64.c (100%)
 rename tests/tcg/cris/{ => libc}/check_lz.c (100%)
 rename tests/tcg/cris/{ => libc}/check_mapbrk.c (100%)
 rename tests/tcg/cris/{ => libc}/check_mmap1.c (100%)
 rename tests/tcg/cris/{ => libc}/check_mmap2.c (100%)
 rename tests/tcg/cris/{ => libc}/check_mmap3.c (100%)
 rename tests/tcg/cris/{ => libc}/check_moveq.c (100%)
 rename tests/tcg/cris/{ => libc}/check_openpf1.c (100%)
 rename tests/tcg/cris/{ => libc}/check_openpf2.c (100%)
 rename tests/tcg/cris/{ => libc}/check_openpf3.c (100%)
 rename tests/tcg/cris/{ => libc}/check_openpf5.c (100%)
 rename tests/tcg/cris/{ => libc}/check_settls1.c (100%)
 rename tests/tcg/cris/{ => libc}/check_sigalrm.c (100%)
 rename tests/tcg/cris/{ => libc}/check_stat1.c (100%)
 rename tests/tcg/cris/{ => libc}/check_stat2.c (100%)
 rename tests/tcg/cris/{ => libc}/check_stat3.c (100%)
 rename tests/tcg/cris/{ => libc}/check_stat4.c (100%)
 rename tests/tcg/cris/{ => libc}/check_swap.c (100%)
 rename tests/tcg/cris/{ => libc}/check_time2.c (100%)
 rename tests/tcg/cris/{ => libc}/crisutils.h (100%)
 create mode 100644 tests/tcg/cris/libc/sys.c
 rename tests/tcg/cris/{ => libc}/sys.h (100%)

diff --git a/tests/tcg/cris/check_addcv17.s b/tests/tcg/cris/bare/check_addcv17.s
similarity index 100%
rename from tests/tcg/cris/check_addcv17.s
rename to tests/tcg/cris/bare/check_addcv17.s
diff --git a/tests/tcg/cris/check_addi.s b/tests/tcg/cris/bare/check_addi.s
similarity index 100%
rename from tests/tcg/cris/check_addi.s
rename to tests/tcg/cris/bare/check_addi.s
diff --git a/tests/tcg/cris/check_addiv32.s b/tests/tcg/cris/bare/check_addiv32.s
similarity index 100%
rename from tests/tcg/cris/check_addiv32.s
rename to tests/tcg/cris/bare/check_addiv32.s
diff --git a/tests/tcg/cris/check_addm.s b/tests/tcg/cris/bare/check_addm.s
similarity index 100%
rename from tests/tcg/cris/check_addm.s
rename to tests/tcg/cris/bare/check_addm.s
diff --git a/tests/tcg/cris/check_addq.s b/tests/tcg/cris/bare/check_addq.s
similarity index 100%
rename from tests/tcg/cris/check_addq.s
rename to tests/tcg/cris/bare/check_addq.s
diff --git a/tests/tcg/cris/check_addr.s b/tests/tcg/cris/bare/check_addr.s
similarity index 100%
rename from tests/tcg/cris/check_addr.s
rename to tests/tcg/cris/bare/check_addr.s
diff --git a/tests/tcg/cris/check_addxc.s b/tests/tcg/cris/bare/check_addxc.s
similarity index 100%
rename from tests/tcg/cris/check_addxc.s
rename to tests/tcg/cris/bare/check_addxc.s
diff --git a/tests/tcg/cris/check_addxm.s b/tests/tcg/cris/bare/check_addxm.s
similarity index 100%
rename from tests/tcg/cris/check_addxm.s
rename to tests/tcg/cris/bare/check_addxm.s
diff --git a/tests/tcg/cris/check_addxr.s b/tests/tcg/cris/bare/check_addxr.s
similarity index 100%
rename from tests/tcg/cris/check_addxr.s
rename to tests/tcg/cris/bare/check_addxr.s
diff --git a/tests/tcg/cris/check_andc.s b/tests/tcg/cris/bare/check_andc.s
similarity index 100%
rename from tests/tcg/cris/check_andc.s
rename to tests/tcg/cris/bare/check_andc.s
diff --git a/tests/tcg/cris/check_andm.s b/tests/tcg/cris/bare/check_andm.s
similarity index 100%
rename from tests/tcg/cris/check_andm.s
rename to tests/tcg/cris/bare/check_andm.s
diff --git a/tests/tcg/cris/check_andq.s b/tests/tcg/cris/bare/check_andq.s
similarity index 100%
rename from tests/tcg/cris/check_andq.s
rename to tests/tcg/cris/bare/check_andq.s
diff --git a/tests/tcg/cris/check_andr.s b/tests/tcg/cris/bare/check_andr.s
similarity index 100%
rename from tests/tcg/cris/check_andr.s
rename to tests/tcg/cris/bare/check_andr.s
diff --git a/tests/tcg/cris/check_asr.s b/tests/tcg/cris/bare/check_asr.s
similarity index 100%
rename from tests/tcg/cris/check_asr.s
rename to tests/tcg/cris/bare/check_asr.s
diff --git a/tests/tcg/cris/check_ba.s b/tests/tcg/cris/bare/check_ba.s
similarity index 100%
rename from tests/tcg/cris/check_ba.s
rename to tests/tcg/cris/bare/check_ba.s
diff --git a/tests/tcg/cris/check_bas.s b/tests/tcg/cris/bare/check_bas.s
similarity index 100%
rename from tests/tcg/cris/check_bas.s
rename to tests/tcg/cris/bare/check_bas.s
diff --git a/tests/tcg/cris/check_bcc.s b/tests/tcg/cris/bare/check_bcc.s
similarity index 100%
rename from tests/tcg/cris/check_bcc.s
rename to tests/tcg/cris/bare/check_bcc.s
diff --git a/tests/tcg/cris/check_boundc.s b/tests/tcg/cris/bare/check_boundc.s
similarity index 100%
rename from tests/tcg/cris/check_boundc.s
rename to tests/tcg/cris/bare/check_boundc.s
diff --git a/tests/tcg/cris/check_boundr.s b/tests/tcg/cris/bare/check_boundr.s
similarity index 100%
rename from tests/tcg/cris/check_boundr.s
rename to tests/tcg/cris/bare/check_boundr.s
diff --git a/tests/tcg/cris/check_btst.s b/tests/tcg/cris/bare/check_btst.s
similarity index 100%
rename from tests/tcg/cris/check_btst.s
rename to tests/tcg/cris/bare/check_btst.s
diff --git a/tests/tcg/cris/check_clearfv32.s b/tests/tcg/cris/bare/check_clearfv32.s
similarity index 100%
rename from tests/tcg/cris/check_clearfv32.s
rename to tests/tcg/cris/bare/check_clearfv32.s
diff --git a/tests/tcg/cris/check_clrjmp1.s b/tests/tcg/cris/bare/check_clrjmp1.s
similarity index 100%
rename from tests/tcg/cris/check_clrjmp1.s
rename to tests/tcg/cris/bare/check_clrjmp1.s
diff --git a/tests/tcg/cris/check_cmp-2.s b/tests/tcg/cris/bare/check_cmp-2.s
similarity index 100%
rename from tests/tcg/cris/check_cmp-2.s
rename to tests/tcg/cris/bare/check_cmp-2.s
diff --git a/tests/tcg/cris/check_cmpc.s b/tests/tcg/cris/bare/check_cmpc.s
similarity index 100%
rename from tests/tcg/cris/check_cmpc.s
rename to tests/tcg/cris/bare/check_cmpc.s
diff --git a/tests/tcg/cris/check_cmpm.s b/tests/tcg/cris/bare/check_cmpm.s
similarity index 100%
rename from tests/tcg/cris/check_cmpm.s
rename to tests/tcg/cris/bare/check_cmpm.s
diff --git a/tests/tcg/cris/check_cmpq.s b/tests/tcg/cris/bare/check_cmpq.s
similarity index 100%
rename from tests/tcg/cris/check_cmpq.s
rename to tests/tcg/cris/bare/check_cmpq.s
diff --git a/tests/tcg/cris/check_cmpr.s b/tests/tcg/cris/bare/check_cmpr.s
similarity index 100%
rename from tests/tcg/cris/check_cmpr.s
rename to tests/tcg/cris/bare/check_cmpr.s
diff --git a/tests/tcg/cris/check_cmpxc.s b/tests/tcg/cris/bare/check_cmpxc.s
similarity index 100%
rename from tests/tcg/cris/check_cmpxc.s
rename to tests/tcg/cris/bare/check_cmpxc.s
diff --git a/tests/tcg/cris/check_cmpxm.s b/tests/tcg/cris/bare/check_cmpxm.s
similarity index 100%
rename from tests/tcg/cris/check_cmpxm.s
rename to tests/tcg/cris/bare/check_cmpxm.s
diff --git a/tests/tcg/cris/check_dstep.s b/tests/tcg/cris/bare/check_dstep.s
similarity index 100%
rename from tests/tcg/cris/check_dstep.s
rename to tests/tcg/cris/bare/check_dstep.s
diff --git a/tests/tcg/cris/check_jsr.s b/tests/tcg/cris/bare/check_jsr.s
similarity index 100%
rename from tests/tcg/cris/check_jsr.s
rename to tests/tcg/cris/bare/check_jsr.s
diff --git a/tests/tcg/cris/check_lapc.s b/tests/tcg/cris/bare/check_lapc.s
similarity index 100%
rename from tests/tcg/cris/check_lapc.s
rename to tests/tcg/cris/bare/check_lapc.s
diff --git a/tests/tcg/cris/check_lsl.s b/tests/tcg/cris/bare/check_lsl.s
similarity index 100%
rename from tests/tcg/cris/check_lsl.s
rename to tests/tcg/cris/bare/check_lsl.s
diff --git a/tests/tcg/cris/check_lsr.s b/tests/tcg/cris/bare/check_lsr.s
similarity index 100%
rename from tests/tcg/cris/check_lsr.s
rename to tests/tcg/cris/bare/check_lsr.s
diff --git a/tests/tcg/cris/check_mcp.s b/tests/tcg/cris/bare/check_mcp.s
similarity index 100%
rename from tests/tcg/cris/check_mcp.s
rename to tests/tcg/cris/bare/check_mcp.s
diff --git a/tests/tcg/cris/check_movdelsr1.s b/tests/tcg/cris/bare/check_movdelsr1.s
similarity index 100%
rename from tests/tcg/cris/check_movdelsr1.s
rename to tests/tcg/cris/bare/check_movdelsr1.s
diff --git a/tests/tcg/cris/check_movecr.s b/tests/tcg/cris/bare/check_movecr.s
similarity index 100%
rename from tests/tcg/cris/check_movecr.s
rename to tests/tcg/cris/bare/check_movecr.s
diff --git a/tests/tcg/cris/check_movei.s b/tests/tcg/cris/bare/check_movei.s
similarity index 100%
rename from tests/tcg/cris/check_movei.s
rename to tests/tcg/cris/bare/check_movei.s
diff --git a/tests/tcg/cris/check_movemr.s b/tests/tcg/cris/bare/check_movemr.s
similarity index 100%
rename from tests/tcg/cris/check_movemr.s
rename to tests/tcg/cris/bare/check_movemr.s
diff --git a/tests/tcg/cris/check_movemrv32.s b/tests/tcg/cris/bare/check_movemrv32.s
similarity index 100%
rename from tests/tcg/cris/check_movemrv32.s
rename to tests/tcg/cris/bare/check_movemrv32.s
diff --git a/tests/tcg/cris/check_mover.s b/tests/tcg/cris/bare/check_mover.s
similarity index 100%
rename from tests/tcg/cris/check_mover.s
rename to tests/tcg/cris/bare/check_mover.s
diff --git a/tests/tcg/cris/check_moverm.s b/tests/tcg/cris/bare/check_moverm.s
similarity index 100%
rename from tests/tcg/cris/check_moverm.s
rename to tests/tcg/cris/bare/check_moverm.s
diff --git a/tests/tcg/cris/check_movmp.s b/tests/tcg/cris/bare/check_movmp.s
similarity index 100%
rename from tests/tcg/cris/check_movmp.s
rename to tests/tcg/cris/bare/check_movmp.s
diff --git a/tests/tcg/cris/check_movpmv32.s b/tests/tcg/cris/bare/check_movpmv32.s
similarity index 100%
rename from tests/tcg/cris/check_movpmv32.s
rename to tests/tcg/cris/bare/check_movpmv32.s
diff --git a/tests/tcg/cris/check_movpr.s b/tests/tcg/cris/bare/check_movpr.s
similarity index 100%
rename from tests/tcg/cris/check_movpr.s
rename to tests/tcg/cris/bare/check_movpr.s
diff --git a/tests/tcg/cris/check_movprv32.s b/tests/tcg/cris/bare/check_movprv32.s
similarity index 100%
rename from tests/tcg/cris/check_movprv32.s
rename to tests/tcg/cris/bare/check_movprv32.s
diff --git a/tests/tcg/cris/check_movscr.s b/tests/tcg/cris/bare/check_movscr.s
similarity index 100%
rename from tests/tcg/cris/check_movscr.s
rename to tests/tcg/cris/bare/check_movscr.s
diff --git a/tests/tcg/cris/check_movsm.s b/tests/tcg/cris/bare/check_movsm.s
similarity index 100%
rename from tests/tcg/cris/check_movsm.s
rename to tests/tcg/cris/bare/check_movsm.s
diff --git a/tests/tcg/cris/check_movsr.s b/tests/tcg/cris/bare/check_movsr.s
similarity index 100%
rename from tests/tcg/cris/check_movsr.s
rename to tests/tcg/cris/bare/check_movsr.s
diff --git a/tests/tcg/cris/check_movucr.s b/tests/tcg/cris/bare/check_movucr.s
similarity index 100%
rename from tests/tcg/cris/check_movucr.s
rename to tests/tcg/cris/bare/check_movucr.s
diff --git a/tests/tcg/cris/check_movum.s b/tests/tcg/cris/bare/check_movum.s
similarity index 100%
rename from tests/tcg/cris/check_movum.s
rename to tests/tcg/cris/bare/check_movum.s
diff --git a/tests/tcg/cris/check_movur.s b/tests/tcg/cris/bare/check_movur.s
similarity index 100%
rename from tests/tcg/cris/check_movur.s
rename to tests/tcg/cris/bare/check_movur.s
diff --git a/tests/tcg/cris/check_mulv32.s b/tests/tcg/cris/bare/check_mulv32.s
similarity index 100%
rename from tests/tcg/cris/check_mulv32.s
rename to tests/tcg/cris/bare/check_mulv32.s
diff --git a/tests/tcg/cris/check_mulx.s b/tests/tcg/cris/bare/check_mulx.s
similarity index 100%
rename from tests/tcg/cris/check_mulx.s
rename to tests/tcg/cris/bare/check_mulx.s
diff --git a/tests/tcg/cris/check_neg.s b/tests/tcg/cris/bare/check_neg.s
similarity index 100%
rename from tests/tcg/cris/check_neg.s
rename to tests/tcg/cris/bare/check_neg.s
diff --git a/tests/tcg/cris/check_not.s b/tests/tcg/cris/bare/check_not.s
similarity index 100%
rename from tests/tcg/cris/check_not.s
rename to tests/tcg/cris/bare/check_not.s
diff --git a/tests/tcg/cris/check_orc.s b/tests/tcg/cris/bare/check_orc.s
similarity index 100%
rename from tests/tcg/cris/check_orc.s
rename to tests/tcg/cris/bare/check_orc.s
diff --git a/tests/tcg/cris/check_orm.s b/tests/tcg/cris/bare/check_orm.s
similarity index 100%
rename from tests/tcg/cris/check_orm.s
rename to tests/tcg/cris/bare/check_orm.s
diff --git a/tests/tcg/cris/check_orq.s b/tests/tcg/cris/bare/check_orq.s
similarity index 100%
rename from tests/tcg/cris/check_orq.s
rename to tests/tcg/cris/bare/check_orq.s
diff --git a/tests/tcg/cris/check_orr.s b/tests/tcg/cris/bare/check_orr.s
similarity index 100%
rename from tests/tcg/cris/check_orr.s
rename to tests/tcg/cris/bare/check_orr.s
diff --git a/tests/tcg/cris/check_ret.s b/tests/tcg/cris/bare/check_ret.s
similarity index 100%
rename from tests/tcg/cris/check_ret.s
rename to tests/tcg/cris/bare/check_ret.s
diff --git a/tests/tcg/cris/check_scc.s b/tests/tcg/cris/bare/check_scc.s
similarity index 100%
rename from tests/tcg/cris/check_scc.s
rename to tests/tcg/cris/bare/check_scc.s
diff --git a/tests/tcg/cris/check_subc.s b/tests/tcg/cris/bare/check_subc.s
similarity index 100%
rename from tests/tcg/cris/check_subc.s
rename to tests/tcg/cris/bare/check_subc.s
diff --git a/tests/tcg/cris/check_subm.s b/tests/tcg/cris/bare/check_subm.s
similarity index 100%
rename from tests/tcg/cris/check_subm.s
rename to tests/tcg/cris/bare/check_subm.s
diff --git a/tests/tcg/cris/check_subq.s b/tests/tcg/cris/bare/check_subq.s
similarity index 100%
rename from tests/tcg/cris/check_subq.s
rename to tests/tcg/cris/bare/check_subq.s
diff --git a/tests/tcg/cris/check_subr.s b/tests/tcg/cris/bare/check_subr.s
similarity index 100%
rename from tests/tcg/cris/check_subr.s
rename to tests/tcg/cris/bare/check_subr.s
diff --git a/tests/tcg/cris/check_xarith.s b/tests/tcg/cris/bare/check_xarith.s
similarity index 100%
rename from tests/tcg/cris/check_xarith.s
rename to tests/tcg/cris/bare/check_xarith.s
diff --git a/tests/tcg/cris/crt.s b/tests/tcg/cris/bare/crt.s
similarity index 100%
rename from tests/tcg/cris/crt.s
rename to tests/tcg/cris/bare/crt.s
diff --git a/tests/tcg/cris/sys.c b/tests/tcg/cris/bare/sys.c
similarity index 100%
rename from tests/tcg/cris/sys.c
rename to tests/tcg/cris/bare/sys.c
diff --git a/tests/tcg/cris/testutils.inc b/tests/tcg/cris/bare/testutils.inc
similarity index 100%
rename from tests/tcg/cris/testutils.inc
rename to tests/tcg/cris/bare/testutils.inc
diff --git a/tests/tcg/cris/check_abs.c b/tests/tcg/cris/libc/check_abs.c
similarity index 100%
rename from tests/tcg/cris/check_abs.c
rename to tests/tcg/cris/libc/check_abs.c
diff --git a/tests/tcg/cris/check_addc.c b/tests/tcg/cris/libc/check_addc.c
similarity index 100%
rename from tests/tcg/cris/check_addc.c
rename to tests/tcg/cris/libc/check_addc.c
diff --git a/tests/tcg/cris/check_addcm.c b/tests/tcg/cris/libc/check_addcm.c
similarity index 100%
rename from tests/tcg/cris/check_addcm.c
rename to tests/tcg/cris/libc/check_addcm.c
diff --git a/tests/tcg/cris/check_addo.c b/tests/tcg/cris/libc/check_addo.c
similarity index 100%
rename from tests/tcg/cris/check_addo.c
rename to tests/tcg/cris/libc/check_addo.c
diff --git a/tests/tcg/cris/check_addoq.c b/tests/tcg/cris/libc/check_addoq.c
similarity index 100%
rename from tests/tcg/cris/check_addoq.c
rename to tests/tcg/cris/libc/check_addoq.c
diff --git a/tests/tcg/cris/check_bound.c b/tests/tcg/cris/libc/check_bound.c
similarity index 100%
rename from tests/tcg/cris/check_bound.c
rename to tests/tcg/cris/libc/check_bound.c
diff --git a/tests/tcg/cris/check_ftag.c b/tests/tcg/cris/libc/check_ftag.c
similarity index 100%
rename from tests/tcg/cris/check_ftag.c
rename to tests/tcg/cris/libc/check_ftag.c
diff --git a/tests/tcg/cris/check_gcctorture_pr28634-1.c b/tests/tcg/cris/libc/check_gcctorture_pr28634-1.c
similarity index 100%
rename from tests/tcg/cris/check_gcctorture_pr28634-1.c
rename to tests/tcg/cris/libc/check_gcctorture_pr28634-1.c
diff --git a/tests/tcg/cris/check_gcctorture_pr28634.c b/tests/tcg/cris/libc/check_gcctorture_pr28634.c
similarity index 100%
rename from tests/tcg/cris/check_gcctorture_pr28634.c
rename to tests/tcg/cris/libc/check_gcctorture_pr28634.c
diff --git a/tests/tcg/cris/check_glibc_kernelversion.c b/tests/tcg/cris/libc/check_glibc_kernelversion.c
similarity index 100%
rename from tests/tcg/cris/check_glibc_kernelversion.c
rename to tests/tcg/cris/libc/check_glibc_kernelversion.c
diff --git a/tests/tcg/cris/check_hello.c b/tests/tcg/cris/libc/check_hello.c
similarity index 100%
rename from tests/tcg/cris/check_hello.c
rename to tests/tcg/cris/libc/check_hello.c
diff --git a/tests/tcg/cris/check_int64.c b/tests/tcg/cris/libc/check_int64.c
similarity index 100%
rename from tests/tcg/cris/check_int64.c
rename to tests/tcg/cris/libc/check_int64.c
diff --git a/tests/tcg/cris/check_lz.c b/tests/tcg/cris/libc/check_lz.c
similarity index 100%
rename from tests/tcg/cris/check_lz.c
rename to tests/tcg/cris/libc/check_lz.c
diff --git a/tests/tcg/cris/check_mapbrk.c b/tests/tcg/cris/libc/check_mapbrk.c
similarity index 100%
rename from tests/tcg/cris/check_mapbrk.c
rename to tests/tcg/cris/libc/check_mapbrk.c
diff --git a/tests/tcg/cris/check_mmap1.c b/tests/tcg/cris/libc/check_mmap1.c
similarity index 100%
rename from tests/tcg/cris/check_mmap1.c
rename to tests/tcg/cris/libc/check_mmap1.c
diff --git a/tests/tcg/cris/check_mmap2.c b/tests/tcg/cris/libc/check_mmap2.c
similarity index 100%
rename from tests/tcg/cris/check_mmap2.c
rename to tests/tcg/cris/libc/check_mmap2.c
diff --git a/tests/tcg/cris/check_mmap3.c b/tests/tcg/cris/libc/check_mmap3.c
similarity index 100%
rename from tests/tcg/cris/check_mmap3.c
rename to tests/tcg/cris/libc/check_mmap3.c
diff --git a/tests/tcg/cris/check_moveq.c b/tests/tcg/cris/libc/check_moveq.c
similarity index 100%
rename from tests/tcg/cris/check_moveq.c
rename to tests/tcg/cris/libc/check_moveq.c
diff --git a/tests/tcg/cris/check_openpf1.c b/tests/tcg/cris/libc/check_openpf1.c
similarity index 100%
rename from tests/tcg/cris/check_openpf1.c
rename to tests/tcg/cris/libc/check_openpf1.c
diff --git a/tests/tcg/cris/check_openpf2.c b/tests/tcg/cris/libc/check_openpf2.c
similarity index 100%
rename from tests/tcg/cris/check_openpf2.c
rename to tests/tcg/cris/libc/check_openpf2.c
diff --git a/tests/tcg/cris/check_openpf3.c b/tests/tcg/cris/libc/check_openpf3.c
similarity index 100%
rename from tests/tcg/cris/check_openpf3.c
rename to tests/tcg/cris/libc/check_openpf3.c
diff --git a/tests/tcg/cris/check_openpf5.c b/tests/tcg/cris/libc/check_openpf5.c
similarity index 100%
rename from tests/tcg/cris/check_openpf5.c
rename to tests/tcg/cris/libc/check_openpf5.c
diff --git a/tests/tcg/cris/check_settls1.c b/tests/tcg/cris/libc/check_settls1.c
similarity index 100%
rename from tests/tcg/cris/check_settls1.c
rename to tests/tcg/cris/libc/check_settls1.c
diff --git a/tests/tcg/cris/check_sigalrm.c b/tests/tcg/cris/libc/check_sigalrm.c
similarity index 100%
rename from tests/tcg/cris/check_sigalrm.c
rename to tests/tcg/cris/libc/check_sigalrm.c
diff --git a/tests/tcg/cris/check_stat1.c b/tests/tcg/cris/libc/check_stat1.c
similarity index 100%
rename from tests/tcg/cris/check_stat1.c
rename to tests/tcg/cris/libc/check_stat1.c
diff --git a/tests/tcg/cris/check_stat2.c b/tests/tcg/cris/libc/check_stat2.c
similarity index 100%
rename from tests/tcg/cris/check_stat2.c
rename to tests/tcg/cris/libc/check_stat2.c
diff --git a/tests/tcg/cris/check_stat3.c b/tests/tcg/cris/libc/check_stat3.c
similarity index 100%
rename from tests/tcg/cris/check_stat3.c
rename to tests/tcg/cris/libc/check_stat3.c
diff --git a/tests/tcg/cris/check_stat4.c b/tests/tcg/cris/libc/check_stat4.c
similarity index 100%
rename from tests/tcg/cris/check_stat4.c
rename to tests/tcg/cris/libc/check_stat4.c
diff --git a/tests/tcg/cris/check_swap.c b/tests/tcg/cris/libc/check_swap.c
similarity index 100%
rename from tests/tcg/cris/check_swap.c
rename to tests/tcg/cris/libc/check_swap.c
diff --git a/tests/tcg/cris/check_time2.c b/tests/tcg/cris/libc/check_time2.c
similarity index 100%
rename from tests/tcg/cris/check_time2.c
rename to tests/tcg/cris/libc/check_time2.c
diff --git a/tests/tcg/cris/crisutils.h b/tests/tcg/cris/libc/crisutils.h
similarity index 100%
rename from tests/tcg/cris/crisutils.h
rename to tests/tcg/cris/libc/crisutils.h
diff --git a/tests/tcg/cris/libc/sys.c b/tests/tcg/cris/libc/sys.c
new file mode 100644
index 0000000000..b8e759eee3
--- /dev/null
+++ b/tests/tcg/cris/libc/sys.c
@@ -0,0 +1,58 @@
+/*
+ * Minilib helpers functions for system test
+ */
+
+
+void exit (int status) {
+	register unsigned int callno asm ("r9") = 1; /* NR_exit */
+	asm volatile ("break 13\n"
+		      :
+		      : "r" (callno)
+		      : "memory" );
+	while(1);
+}
+
+ssize_t write (int fd, const void *buf, size_t count) {
+	register unsigned int callno asm ("r9") = 4; /* NR_write */
+	register unsigned int r10 asm ("r10") = fd;
+	register const void *r11 asm ("r11") = buf;
+	register size_t r12 asm ("r12") = count;
+	register unsigned int r asm ("r10");
+
+	asm volatile ("break 13\n"
+	     : "=r" (r)
+	     : "r" (callno), "0" (r10), "r" (r11), "r" (r12)
+	     : "memory");
+
+	return r;
+}
+
+static inline int mystrlen(char *s) {
+	int i = 0;
+	while (s[i])
+		i++;
+	return i;
+}
+
+void pass(void) {
+	char s[] = "passed.\n";
+	write (1, s, sizeof (s) - 1);
+	exit (0);
+}
+
+void _fail(char *reason) {
+	char s[] = "\nfailed: ";
+	int len = mystrlen(reason);
+	write (1, s, sizeof (s) - 1);
+	write (1, reason, len);
+	write (1, "\n", 1);
+//	exit (1);
+}
+
+void *memset (void *s, int c, size_t n) {
+	char *p = s;
+	int i;
+	for (i = 0; i < n; i++)
+		p[i] = c;
+	return p;
+}
diff --git a/tests/tcg/cris/sys.h b/tests/tcg/cris/libc/sys.h
similarity index 100%
rename from tests/tcg/cris/sys.h
rename to tests/tcg/cris/libc/sys.h
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH  v2 11/16] tests/tcg/cris: cleanup sys.c
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
                   ` (9 preceding siblings ...)
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 10/16] tests/tcg: split cris tests into bare and libc directories Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 12/16] tests/tcg/cris: comment out the ccs test Alex Bennée
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Alex Bennée

This is a mini library which provides helper functions to the tests
which are all currently written in assembly. A bunch of minor changes:

      - removed libc related headers (fedora-cris-cross is a system compiler)
      - re-organised the functions to avoid forward declarations
      - cleaned up brace usage
      - restored exit for _fail case
      - removed tabs and fixed indentation

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/tcg/cris/bare/sys.c | 96 +++++++++++++++++++--------------------
 tests/tcg/cris/libc/sys.c | 23 ++++++----
 2 files changed, 62 insertions(+), 57 deletions(-)

diff --git a/tests/tcg/cris/bare/sys.c b/tests/tcg/cris/bare/sys.c
index 21f08c0747..aa342335d6 100644
--- a/tests/tcg/cris/bare/sys.c
+++ b/tests/tcg/cris/bare/sys.c
@@ -1,59 +1,59 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-static inline int mystrlen(char *s) {
-	int i = 0;
-	while (s[i])
-		i++;
-	return i;
+/*
+ * Helper functions for CRIS system tests
+ *
+ * There is no libc and only a limited set of headers.
+ */
+
+#include <stddef.h>
+
+void exit(int status)
+{
+    register unsigned int callno asm ("r9") = 1; /* NR_exit */
+
+    asm volatile ("break 13\n"
+                  : /* no outputs */
+                  : "r" (callno)
+                  : "memory" );
+    while(1);
 }
 
-void pass(void) {
-	char s[] = "passed.\n";
-	write (1, s, sizeof (s) - 1);
-	exit (0);
-}
+size_t write(int fd, const void *buf, size_t count)
+{
+    register unsigned int callno asm ("r9") = 4; /* NR_write */
+    register unsigned int r10 asm ("r10") = fd;
+    register const void *r11 asm ("r11") = buf;
+    register size_t r12 asm ("r12") = count;
+    register unsigned int r asm ("r10");
 
-void _fail(char *reason) {
-	char s[] = "\nfailed: ";
-	int len = mystrlen(reason);
-	write (1, s, sizeof (s) - 1);
-	write (1, reason, len);
-	write (1, "\n", 1);
-//	exit (1);
-}
+    asm volatile ("break 13\n"
+                  : "=r" (r)
+                  : "r" (callno), "0" (r10), "r" (r11), "r" (r12)
+                  : "memory");
 
-void *memset (void *s, int c, size_t n) {
-	char *p = s;
-	int i;
-	for (i = 0; i < n; i++)
-		p[i] = c;
-	return p;
+    return r;
 }
 
-void exit (int status) {
-	register unsigned int callno asm ("r9") = 1; /* NR_exit */
-
-	asm volatile ("break 13\n"
-		      :
-		      : "r" (callno)
-		      : "memory" );
-	while(1)
-		;
+static inline int mystrlen(char *s)
+{
+    int i = 0;
+    while (s[i]) {
+        i++;
+    }
+    return i;
 }
 
-ssize_t write (int fd, const void *buf, size_t count) {
-	register unsigned int callno asm ("r9") = 4; /* NR_write */
-	register unsigned int r10 asm ("r10") = fd;
-	register const void *r11 asm ("r11") = buf;
-	register size_t r12 asm ("r12") = count;
-	register unsigned int r asm ("r10");
 
-	asm volatile ("break 13\n"
-	     : "=r" (r)
-	     : "r" (callno), "0" (r10), "r" (r11), "r" (r12)
-	     : "memory");
+void pass(void) {
+    char s[] = "passed.\n";
+    write(1, s, sizeof (s) - 1);
+    exit(0);
+}
 
-	return r;
+void _fail(char *reason) {
+    char s[] = "\nfailed: ";
+    int len = mystrlen(reason);
+    write(1, s, sizeof (s) - 1);
+    write(1, reason, len);
+    write(1, "\n", 1);
+    exit(1);
 }
diff --git a/tests/tcg/cris/libc/sys.c b/tests/tcg/cris/libc/sys.c
index b8e759eee3..6ec4e77b22 100644
--- a/tests/tcg/cris/libc/sys.c
+++ b/tests/tcg/cris/libc/sys.c
@@ -3,16 +3,18 @@
  */
 
 
-void exit (int status) {
+void exit(int status)
+{
 	register unsigned int callno asm ("r9") = 1; /* NR_exit */
 	asm volatile ("break 13\n"
 		      :
 		      : "r" (callno)
-		      : "memory" );
+		      : "memory");
 	while(1);
 }
 
-ssize_t write (int fd, const void *buf, size_t count) {
+ssize_t write(int fd, const void *buf, size_t count)
+{
 	register unsigned int callno asm ("r9") = 4; /* NR_write */
 	register unsigned int r10 asm ("r10") = fd;
 	register const void *r11 asm ("r11") = buf;
@@ -27,29 +29,32 @@ ssize_t write (int fd, const void *buf, size_t count) {
 	return r;
 }
 
-static inline int mystrlen(char *s) {
+static inline int mystrlen(char *s)
+{
 	int i = 0;
 	while (s[i])
 		i++;
 	return i;
 }
 
-void pass(void) {
+void pass(void)
+{
 	char s[] = "passed.\n";
-	write (1, s, sizeof (s) - 1);
+	write (1, s, sizeof(s) - 1);
 	exit (0);
 }
 
-void _fail(char *reason) {
+void _fail(char *reason)
+{
 	char s[] = "\nfailed: ";
 	int len = mystrlen(reason);
 	write (1, s, sizeof (s) - 1);
 	write (1, reason, len);
 	write (1, "\n", 1);
-//	exit (1);
 }
 
-void *memset (void *s, int c, size_t n) {
+void *memset(void *s, int c, size_t n)
+{
 	char *p = s;
 	int i;
 	for (i = 0; i < n; i++)
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH v2 12/16] tests/tcg/cris: comment out the ccs test
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
                   ` (10 preceding siblings ...)
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 11/16] tests/tcg/cris: cleanup sys.c Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 13/16] tests/tcg/cris: align mul operations Alex Bennée
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Alex Bennée

Evidently upstream gcc doesn't like this opcode.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/tcg/cris/bare/check_btst.s | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/tests/tcg/cris/bare/check_btst.s b/tests/tcg/cris/bare/check_btst.s
index e39fc8f4d6..485deb2006 100644
--- a/tests/tcg/cris/bare/check_btst.s
+++ b/tests/tcg/cris/bare/check_btst.s
@@ -85,12 +85,12 @@
  checkr3 1111
 
  ; check that X gets cleared and that only the NZ flags are touched.
- move.d	0xff, $r0
- move $r0, $ccs
- btst r3,r3
- move $ccs, $r0
- and.d 0xff, $r0
- cmp.d	0xe3, $r0
- test_cc 0 1 0 0
+ ;; move.d	0xff, $r0
+ ;; move $r0, $ccs
+ ;; btst r3,r3
+ ;; move $ccs, $r0
+ ;; and.d 0xff, $r0
+ ;; cmp.d	0xe3, $r0
+ ;; test_cc 0 1 0 0
 
  quit
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH v2 13/16] tests/tcg/cris: align mul operations
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
                   ` (11 preceding siblings ...)
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 12/16] tests/tcg/cris: comment out the ccs test Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 14/16] tests/tcg: enable cris base user-mode tests Alex Bennée
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Alex Bennée

To avoid:

  Error: dangerous MULS/MULU location; give it higher alignment

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/tcg/cris/bare/check_mulx.s | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/tests/tcg/cris/bare/check_mulx.s b/tests/tcg/cris/bare/check_mulx.s
index d43241a6f5..a7a1f82a82 100644
--- a/tests/tcg/cris/bare/check_mulx.s
+++ b/tests/tcg/cris/bare/check_mulx.s
@@ -3,6 +3,8 @@
 
  .include "testutils.inc"
  start
+
+ .align 4
  moveq -1,r3
  moveq 2,r4
  muls.d r4,r3
@@ -11,6 +13,7 @@
  move mof,r3
  checkr3 ffffffff
 
+ .align 4
  moveq -1,r3
  moveq 2,r4
  mulu.d r4,r3
@@ -19,6 +22,7 @@
  move mof,r3
  checkr3 1
 
+ .align 4
  moveq 2,r3
  moveq -1,r4
  muls.d r4,r3
@@ -27,6 +31,7 @@
  move mof,r3
  checkr3 ffffffff
 
+ .align 4
  moveq 2,r3
  moveq -1,r4
  mulu.d r4,r3
@@ -98,6 +103,7 @@
  checkr3 1fffe
  move mof,r3
  checkr3 0
+ nop
 
  moveq 2,r3
  move.d 0xffff,r4
@@ -138,6 +144,7 @@
  checkr3 fdbdade2
  move mof,r3
  checkr3 ffffffff
+ nop
 
  move.d 0x5432f789,r4
  move.d 0x78134452,r3
@@ -146,6 +153,7 @@
  checkr3 420fade2
  move mof,r3
  checkr3 0
+ nop
 
  move.d 0xff,r3
  moveq 2,r4
@@ -186,6 +194,7 @@
  checkr3 1
  move mof,r3
  checkr3 0
+ nop
 
  moveq -1,r4
  move.d r4,r3
@@ -194,6 +203,7 @@
  checkr3 fe01
  move mof,r3
  checkr3 0
+ nop
 
  move.d 0xfeda49ff,r4
  move.d r4,r3
@@ -202,6 +212,7 @@
  checkr3 1
  move mof,r3
  checkr3 0
+ nop
 
  move.d 0xfeda49ff,r4
  move.d r4,r3
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH v2 14/16] tests/tcg: enable cris base user-mode tests
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
                   ` (12 preceding siblings ...)
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 13/16] tests/tcg/cris: align mul operations Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 15/16] .travis.yml: separate softfloat from check-tcg Alex Bennée
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Alex Bennée

This converts the existing Makefile into a Makefile.target and updates
it so it can be called by the tcg build system. The original Makefile
didn't set -cpu except for the v17 tests however that has broken (I
assume because linux-user is a "max" cpu) so here I force it to be
crisv17.

I've also replicated the GNU simulator targets (run-FOO-on-sim).

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/Makefile.include   |   1 +
 tests/tcg/cris/Makefile         | 168 --------------------------------
 tests/tcg/cris/Makefile.include |   6 ++
 tests/tcg/cris/Makefile.target  |  58 +++++++++++
 4 files changed, 65 insertions(+), 168 deletions(-)
 delete mode 100644 tests/tcg/cris/Makefile
 create mode 100644 tests/tcg/cris/Makefile.include
 create mode 100644 tests/tcg/cris/Makefile.target

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 83d43c50e4..60314d293a 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -116,6 +116,7 @@ docker-image-tricore-cross: docker-image-debian9
 DOCKER_PARTIAL_IMAGES += debian-alpha-cross debian-hppa-cross debian-m68k-cross debian-sh4-cross
 DOCKER_PARTIAL_IMAGES += debian-sparc64-cross debian-mips64-cross debian-riscv64-cross
 DOCKER_PARTIAL_IMAGES += debian-tricore-cross debian-powerpc-cross fedora-i386-cross
+DOCKER_PARTIAL_IMAGES += fedora-cris-cross
 
 # Rules for building linux-user powered images
 #
diff --git a/tests/tcg/cris/Makefile b/tests/tcg/cris/Makefile
deleted file mode 100644
index 664b30ce81..0000000000
--- a/tests/tcg/cris/Makefile
+++ /dev/null
@@ -1,168 +0,0 @@
--include ../../../config-host.mak
-
-CROSS=crisv32-axis-linux-gnu-
-SIM=../../../cris-linux-user/qemu-cris -L ./
-SIMG=cris-axis-linux-gnu-run --sysroot=./
-
-CC      = $(CROSS)gcc
-#AS      = $(CROSS)as
-AS	= $(CC) -x assembler-with-cpp
-SIZE    = $(CROSS)size
-LD      = $(CC)
-OBJCOPY = $(CROSS)objcopy
-
-# we rely on GCC inline:ing the stuff we tell it to in many places here.
-CFLAGS  = -Winline -Wall -g -O2 -static
-NOSTDFLAGS = -nostartfiles -nostdlib
-ASFLAGS += -g -Wa,-I,$(SRC_PATH)/tests/tcg/cris/
-LDLIBS  =
-NOSTDLIBS = -lgcc
-
-CRT        = crt.o
-SYS        = sys.o
-TESTCASES += check_abs.tst
-TESTCASES += check_addc.tst
-TESTCASES += check_addcm.tst
-TESTCASES += check_addcv17.tst
-TESTCASES += check_addo.tst
-TESTCASES += check_addoq.tst
-TESTCASES += check_addi.tst
-TESTCASES += check_addiv32.tst
-TESTCASES += check_addm.tst
-TESTCASES += check_addr.tst
-TESTCASES += check_addq.tst
-TESTCASES += check_addxc.tst
-TESTCASES += check_addxm.tst
-TESTCASES += check_addxr.tst
-TESTCASES += check_andc.tst
-TESTCASES += check_andm.tst
-TESTCASES += check_andr.tst
-TESTCASES += check_andq.tst
-TESTCASES += check_asr.tst
-TESTCASES += check_ba.tst
-TESTCASES += check_bas.tst
-TESTCASES += check_bcc.tst
-TESTCASES += check_bound.tst
-TESTCASES += check_boundc.tst
-TESTCASES += check_boundr.tst
-TESTCASES += check_btst.tst
-TESTCASES += check_clearfv32.tst
-TESTCASES += check_cmpc.tst
-TESTCASES += check_cmpr.tst
-TESTCASES += check_cmpq.tst
-TESTCASES += check_cmpm.tst
-TESTCASES += check_cmpxc.tst
-TESTCASES += check_cmpxm.tst
-TESTCASES += check_cmp-2.tst
-TESTCASES += check_clrjmp1.tst
-TESTCASES += check_dstep.tst
-TESTCASES += check_ftag.tst
-TESTCASES += check_int64.tst
-# check_jsr is broken.
-#TESTCASES += check_jsr.tst
-TESTCASES += check_mcp.tst
-TESTCASES += check_movei.tst
-TESTCASES += check_mover.tst
-TESTCASES += check_moverm.tst
-TESTCASES += check_moveq.tst
-TESTCASES += check_movemr.tst
-TESTCASES += check_movemrv32.tst
-TESTCASES += check_movecr.tst
-TESTCASES += check_movmp.tst
-TESTCASES += check_movpr.tst
-TESTCASES += check_movprv32.tst
-TESTCASES += check_movdelsr1.tst
-TESTCASES += check_movpmv32.tst
-TESTCASES += check_movsr.tst
-TESTCASES += check_movsm.tst
-TESTCASES += check_movscr.tst
-TESTCASES += check_movur.tst
-TESTCASES += check_movum.tst
-TESTCASES += check_movucr.tst
-TESTCASES += check_mulx.tst
-TESTCASES += check_mulv32.tst
-TESTCASES += check_neg.tst
-TESTCASES += check_not.tst
-TESTCASES += check_lz.tst
-TESTCASES += check_lapc.tst
-TESTCASES += check_lsl.tst
-TESTCASES += check_lsr.tst
-TESTCASES += check_orc.tst
-TESTCASES += check_orm.tst
-TESTCASES += check_orr.tst
-TESTCASES += check_orq.tst
-TESTCASES += check_ret.tst
-TESTCASES += check_swap.tst
-TESTCASES += check_scc.tst
-TESTCASES += check_subc.tst
-TESTCASES += check_subq.tst
-TESTCASES += check_subr.tst
-TESTCASES += check_subm.tst
-TESTCASES += check_glibc_kernelversion.tst
-TESTCASES += check_xarith.tst
-
-TESTCASES += check_hello.ctst
-TESTCASES += check_stat1.ctst
-TESTCASES += check_stat2.ctst
-TESTCASES += check_stat3.ctst
-TESTCASES += check_stat4.ctst
-TESTCASES += check_openpf1.ctst
-TESTCASES += check_openpf2.ctst
-TESTCASES += check_openpf3.ctst
-TESTCASES += check_openpf5.ctst
-TESTCASES += check_mapbrk.ctst
-TESTCASES += check_mmap1.ctst
-TESTCASES += check_mmap2.ctst
-TESTCASES += check_mmap3.ctst
-TESTCASES += check_sigalrm.ctst
-TESTCASES += check_time2.ctst
-TESTCASES += check_settls1.ctst
-
-TESTCASES += check_gcctorture_pr28634-1.ctst
-#TESTCASES += check_gcctorture_pr28634.ctst
-
-all: build
-
-%.o: $(SRC_PATH)/tests/tcg/cris/%.c
-	$(CC) $(CFLAGS) -c $< -o $@
-
-%.o: $(SRC_PATH)/tests/tcg/cris/%.s
-	$(AS) $(ASFLAGS) -c $< -o $@
-
-%.tst: %.o
-	$(CC) $(CFLAGS) $(NOSTDFLAGS) $(LDLIBS) $(NOSTDLIBS) $(CRT) $< $(SYS) -o $@
-
-%.ctst: %.o
-	$(CC) $(CFLAGS) $(LDLIBS) $< -o $@
-
-
-sysv10.o: sys.c
-	$(CC) $(CFLAGS) -mcpu=v10 -c $< -o $@
-
-crtv10.o: crt.s
-	$(AS) $(ASFLAGS) -mcpu=v10 -c $< -o $@
-
-check_addcv17.tst: ASFLAGS += -mcpu=v10
-check_addcv17.tst: CRT := crtv10.o
-check_addcv17.tst: SYS := sysv10.o
-check_addcv17.tst: crtv10.o sysv10.o
-
-build: $(CRT) $(SYS) $(TESTCASES)
-
-check: $(CRT) $(SYS) $(TESTCASES)
-	@printf "\nQEMU simulator.\n"
-	for case in $(TESTCASES); do \
-		printf %s "$$case "; \
-		SIMARGS=; \
-		case $$case in *v17*) SIMARGS="-cpu crisv17";; esac; \
-		$(SIM) $$SIMARGS ./$$case; \
-	done
-check-g: $(CRT) $(SYS) $(TESTCASES)
-	@printf "\nGDB simulator.\n"
-	@for case in $(TESTCASES); do \
-		printf %s "$$case "; \
-		$(SIMG) $$case; \
-	done
-
-clean:
-	$(RM) -fr $(TESTCASES) *.o
diff --git a/tests/tcg/cris/Makefile.include b/tests/tcg/cris/Makefile.include
new file mode 100644
index 0000000000..1c037824bf
--- /dev/null
+++ b/tests/tcg/cris/Makefile.include
@@ -0,0 +1,6 @@
+#
+# Makefile.include for all CRIS targets
+#
+
+DOCKER_IMAGE=fedora-cris-cross
+DOCKER_CROSS_COMPILER=cris-linux-gnu-gcc
diff --git a/tests/tcg/cris/Makefile.target b/tests/tcg/cris/Makefile.target
new file mode 100644
index 0000000000..c1173ead42
--- /dev/null
+++ b/tests/tcg/cris/Makefile.target
@@ -0,0 +1,58 @@
+# -*- Mode: makefile -*-
+#
+# Cris tests
+#
+# Currently we can only build the "bare" tests with the docker
+# supplied cross-compiler.
+#
+
+CRIS_SRC = $(SRC_PATH)/tests/tcg/cris/bare
+CRIS_ALL = $(wildcard $(CRIS_SRC)/*.s)
+CRIS_TESTS = $(patsubst $(CRIS_SRC)/%.s, %, $(CRIS_ALL))
+# Filter out common blobs and broken tests
+CRIS_BROKEN_TESTS  = crt check_jsr
+# upstream GCC doesn't support v32
+CRIS_BROKEN_TESTS += check_mcp check_mulv32 check_addiv32 check_movpmv32
+CRIS_BROKEN_TESTS += check_movprv32 check_clearfv32 check_movemrv32 check_bas
+CRIS_BROKEN_TESTS += check_lapc check_movei
+# no sure why
+CRIS_BROKEN_TESTS += check_scc check_xarith
+
+CRIS_USABLE_TESTS = $(filter-out $(CRIS_BROKEN_TESTS), $(CRIS_TESTS))
+CRIS_RUNS = $(patsubst %, run-%, $(CRIS_USABLE_TESTS))
+
+# override the list of tests, as we can't build the multiarch tests
+TESTS = $(CRIS_USABLE_TESTS)
+VPATH = $(CRIS_SRC)
+
+AS	= $(CC) -x assembler-with-cpp
+LD      = $(CC)
+
+# we rely on GCC inline:ing the stuff we tell it to in many places here.
+CFLAGS  = -Winline -Wall -g -O2 -static
+NOSTDFLAGS = -nostartfiles -nostdlib
+ASFLAGS += -mcpu=v10 -g -Wa,-I,$(SRC_PATH)/tests/tcg/cris/bare
+CRT_FILES = crt.o sys.o
+
+# stop make deleting crt files if build fails
+.PRECIOUS: $(CRT_FILES)
+
+%.o: %.c
+	$(CC) -c $< -o $@
+
+%.o: %.s
+	$(AS) $(ASFLAGS) -c $< -o $@
+
+%: %.s $(CRT_FILES)
+	$(CC) $(ASFLAGS) $< -o $@ $(LDFLAGS) $(NOSTDFLAGS) $(CRT_FILES)
+
+# The default CPU breaks (possibly as it's max?) so force crisv17
+$(CRIS_RUNS): QEMU_OPTS=-cpu crisv17
+
+# Additional runners to run under GNU SIM
+CRIS_RUNS_ON_SIM=$(patsubst %, %-on-sim, $(CRIS_RUNS))
+SIMG:=cris-axis-linux-gnu-run
+
+# e.g.: make -f ../../tests/tcg/Makefile run-check_orm-on-sim
+run-%-on-sim:
+	$(call run-test, $<, $(SIMG) $<, "$< on $(TARGET_NAME) with SIM")
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH v2 15/16] .travis.yml: separate softfloat from check-tcg
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
                   ` (13 preceding siblings ...)
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 14/16] tests/tcg: enable cris base user-mode tests Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 16/16] .travis.yml: add softmmu check-tcg tests Alex Bennée
  2019-02-28 20:46 ` [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm no-reply
  16 siblings, 0 replies; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Alex Bennée

While used by TCG it is not explicitly part of TCG and the tests can
be run standalone in a minimal build.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 .travis.yml            | 6 ++++++
 tests/Makefile.include | 2 +-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/.travis.yml b/.travis.yml
index cca57f4314..71b3c4a7a3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -85,6 +85,12 @@ matrix:
         - CONFIG="--disable-user"
 
 
+    # Just build tools and run minimal unit and softfloat checks
+    - env:
+        - BASE_CONFIG="--enable-tools"
+        - CONFIG="--disable-user --disable-system"
+        - TEST_CMD="make check-unit check-softfloat -j3"
+
     - env:
         - CONFIG="--enable-debug --enable-debug-tcg --disable-user"
 
diff --git a/tests/Makefile.include b/tests/Makefile.include
index f39b96e250..fb31cc5edf 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -1059,7 +1059,7 @@ clean-tcg-tests-%:
 build-tcg: $(BUILD_TCG_TARGET_RULES)
 
 .PHONY: check-tcg
-check-tcg: check-softfloat $(RUN_TCG_TARGET_RULES)
+check-tcg: $(RUN_TCG_TARGET_RULES)
 
 .PHONY: clean-tcg
 clean-tcg: $(CLEAN_TCG_TARGET_RULES)
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [Qemu-devel] [PATCH v2 16/16] .travis.yml: add softmmu check-tcg tests
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
                   ` (14 preceding siblings ...)
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 15/16] .travis.yml: separate softfloat from check-tcg Alex Bennée
@ 2019-02-28 20:25 ` Alex Bennée
  2019-02-28 20:46 ` [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm no-reply
  16 siblings, 0 replies; 29+ messages in thread
From: Alex Bennée @ 2019-02-28 20:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: qemu-arm, edgar.iglesias, jcmvbkbc, Alex Bennée

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 .travis.yml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/.travis.yml b/.travis.yml
index 71b3c4a7a3..90c5908ae1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -255,6 +255,12 @@ matrix:
         - ./configure ${CONFIG} --extra-cflags="-g3 -O0 -fsanitize=thread -fuse-ld=gold" || { cat config.log && exit 1; }
 
 
+    # Run check-tcg against linux-user
     - env:
         - CONFIG="--disable-system"
         - TEST_CMD="make -j3 check-tcg V=1"
+
+    # Run check-tcg against softmmu targets
+    - env:
+        - CONFIG="--target-list=xtensa-softmmu,arm-softmmu"
+        - TEST_CMD="make -j3 check-tcg V=1"
-- 
2.20.1

^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm
  2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
                   ` (15 preceding siblings ...)
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 16/16] .travis.yml: add softmmu check-tcg tests Alex Bennée
@ 2019-02-28 20:46 ` no-reply
  16 siblings, 0 replies; 29+ messages in thread
From: no-reply @ 2019-02-28 20:46 UTC (permalink / raw)
  To: alex.bennee; +Cc: fam, qemu-devel, edgar.iglesias, qemu-arm, jcmvbkbc

Patchew URL: https://patchew.org/QEMU/20190228202537.4638-1-alex.bennee@linaro.org/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Message-id: 20190228202537.4638-1-alex.bennee@linaro.org
Subject: [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm
Type: series

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
 * [new tag]               patchew/20190228202537.4638-1-alex.bennee@linaro.org -> patchew/20190228202537.4638-1-alex.bennee@linaro.org
Switched to a new branch 'test'
3817cc66f8 .travis.yml: add softmmu check-tcg tests
5454ef35e8 .travis.yml: separate softfloat from check-tcg
1c72e41070 tests/tcg: enable cris base user-mode tests
74bfebc2ba tests/tcg/cris: align mul operations
c156c31322 tests/tcg/cris: comment out the ccs test
a85ea55327 tests/tcg/cris: cleanup sys.c
3748808883 tests/tcg: split cris tests into bare and libc directories
057b9b0114 tests/docker: add fedora-cris-cross compilers
a0e211db55 tests/tcg/arm: add ARMv6-M UNDEFINED 32-bit instruction test
8dd8472bdd tests/tcg/xtensa: enable system tests
98cf445f43 tests/docker: add debian-xtensa-cross image
a98cb156ea tests/tcg/mips: fix hello-mips compilation
f87abb1245 tests/tcg: add gdb runner variant
8f6ab4e934 tests/tcg: add QEMU_OPT option for test runner
73feb4fff8 tests/tcg: enable tcg tests for softmmu
05b1080f7b tests/tcg: add softmmu awareness to Makefile

=== OUTPUT BEGIN ===
1/16 Checking commit 05b1080f7b30 (tests/tcg: add softmmu awareness to Makefile)
2/16 Checking commit 73feb4fff8c8 (tests/tcg: enable tcg tests for softmmu)
3/16 Checking commit 8f6ab4e9345c (tests/tcg: add QEMU_OPT option for test runner)
4/16 Checking commit f87abb12456e (tests/tcg: add gdb runner variant)
5/16 Checking commit a98cb156ea9b (tests/tcg/mips: fix hello-mips compilation)
6/16 Checking commit 98cf445f439f (tests/docker: add debian-xtensa-cross image)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#18: 
new file mode 100644

total: 0 errors, 1 warnings, 42 lines checked

Patch 6/16 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
7/16 Checking commit 8dd8472bdd63 (tests/tcg/xtensa: enable system tests)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#12: 
deleted file mode 100644

total: 0 errors, 1 warnings, 40 lines checked

Patch 7/16 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
8/16 Checking commit a0e211db55c0 (tests/tcg/arm: add ARMv6-M UNDEFINED 32-bit instruction test)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#21: 
new file mode 100644

total: 0 errors, 1 warnings, 204 lines checked

Patch 8/16 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
9/16 Checking commit 057b9b0114ea (tests/docker: add fedora-cris-cross compilers)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#11: 
new file mode 100644

total: 0 errors, 1 warnings, 8 lines checked

Patch 9/16 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
10/16 Checking commit 37488088838b (tests/tcg: split cris tests into bare and libc directories)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#19: 
rename from tests/tcg/cris/check_addcv17.s

ERROR: space prohibited between function name and open parenthesis '('
#432: FILE: tests/tcg/cris/libc/sys.c:6:
+void exit (int status) {

ERROR: code indent should never use tabs
#433: FILE: tests/tcg/cris/libc/sys.c:7:
+^Iregister unsigned int callno asm ("r9") = 1; /* NR_exit */$

ERROR: code indent should never use tabs
#434: FILE: tests/tcg/cris/libc/sys.c:8:
+^Iasm volatile ("break 13\n"$

ERROR: code indent should never use tabs
#435: FILE: tests/tcg/cris/libc/sys.c:9:
+^I^I      :$

ERROR: code indent should never use tabs
#436: FILE: tests/tcg/cris/libc/sys.c:10:
+^I^I      : "r" (callno)$

ERROR: code indent should never use tabs
#437: FILE: tests/tcg/cris/libc/sys.c:11:
+^I^I      : "memory" );$

ERROR: space prohibited before that close parenthesis ')'
#437: FILE: tests/tcg/cris/libc/sys.c:11:
+                     : "memory" );

ERROR: code indent should never use tabs
#438: FILE: tests/tcg/cris/libc/sys.c:12:
+^Iwhile(1);$

ERROR: space required before the open parenthesis '('
#438: FILE: tests/tcg/cris/libc/sys.c:12:
+       while(1);

ERROR: trailing statements should be on next line
#438: FILE: tests/tcg/cris/libc/sys.c:12:
+       while(1);

ERROR: braces {} are necessary for all arms of this statement
#438: FILE: tests/tcg/cris/libc/sys.c:12:
+       while(1);
[...]

ERROR: space prohibited between function name and open parenthesis '('
#441: FILE: tests/tcg/cris/libc/sys.c:15:
+ssize_t write (int fd, const void *buf, size_t count) {

ERROR: code indent should never use tabs
#442: FILE: tests/tcg/cris/libc/sys.c:16:
+^Iregister unsigned int callno asm ("r9") = 4; /* NR_write */$

ERROR: code indent should never use tabs
#443: FILE: tests/tcg/cris/libc/sys.c:17:
+^Iregister unsigned int r10 asm ("r10") = fd;$

ERROR: code indent should never use tabs
#444: FILE: tests/tcg/cris/libc/sys.c:18:
+^Iregister const void *r11 asm ("r11") = buf;$

ERROR: code indent should never use tabs
#445: FILE: tests/tcg/cris/libc/sys.c:19:
+^Iregister size_t r12 asm ("r12") = count;$

ERROR: code indent should never use tabs
#446: FILE: tests/tcg/cris/libc/sys.c:20:
+^Iregister unsigned int r asm ("r10");$

ERROR: code indent should never use tabs
#448: FILE: tests/tcg/cris/libc/sys.c:22:
+^Iasm volatile ("break 13\n"$

ERROR: code indent should never use tabs
#449: FILE: tests/tcg/cris/libc/sys.c:23:
+^I     : "=r" (r)$

ERROR: code indent should never use tabs
#450: FILE: tests/tcg/cris/libc/sys.c:24:
+^I     : "r" (callno), "0" (r10), "r" (r11), "r" (r12)$

ERROR: code indent should never use tabs
#451: FILE: tests/tcg/cris/libc/sys.c:25:
+^I     : "memory");$

ERROR: code indent should never use tabs
#453: FILE: tests/tcg/cris/libc/sys.c:27:
+^Ireturn r;$

ERROR: open brace '{' following function declarations go on the next line
#456: FILE: tests/tcg/cris/libc/sys.c:30:
+static inline int mystrlen(char *s) {

ERROR: code indent should never use tabs
#457: FILE: tests/tcg/cris/libc/sys.c:31:
+^Iint i = 0;$

ERROR: code indent should never use tabs
#458: FILE: tests/tcg/cris/libc/sys.c:32:
+^Iwhile (s[i])$

ERROR: braces {} are necessary for all arms of this statement
#458: FILE: tests/tcg/cris/libc/sys.c:32:
+       while (s[i])
[...]

ERROR: code indent should never use tabs
#459: FILE: tests/tcg/cris/libc/sys.c:33:
+^I^Ii++;$

ERROR: code indent should never use tabs
#460: FILE: tests/tcg/cris/libc/sys.c:34:
+^Ireturn i;$

ERROR: open brace '{' following function declarations go on the next line
#463: FILE: tests/tcg/cris/libc/sys.c:37:
+void pass(void) {

ERROR: code indent should never use tabs
#464: FILE: tests/tcg/cris/libc/sys.c:38:
+^Ichar s[] = "passed.\n";$

ERROR: code indent should never use tabs
#465: FILE: tests/tcg/cris/libc/sys.c:39:
+^Iwrite (1, s, sizeof (s) - 1);$

ERROR: space prohibited between function name and open parenthesis '('
#465: FILE: tests/tcg/cris/libc/sys.c:39:
+       write (1, s, sizeof (s) - 1);

ERROR: space prohibited between function name and open parenthesis '('
#465: FILE: tests/tcg/cris/libc/sys.c:39:
+       write (1, s, sizeof (s) - 1);

ERROR: code indent should never use tabs
#466: FILE: tests/tcg/cris/libc/sys.c:40:
+^Iexit (0);$

ERROR: space prohibited between function name and open parenthesis '('
#466: FILE: tests/tcg/cris/libc/sys.c:40:
+       exit (0);

ERROR: open brace '{' following function declarations go on the next line
#469: FILE: tests/tcg/cris/libc/sys.c:43:
+void _fail(char *reason) {

ERROR: code indent should never use tabs
#470: FILE: tests/tcg/cris/libc/sys.c:44:
+^Ichar s[] = "\nfailed: ";$

ERROR: code indent should never use tabs
#471: FILE: tests/tcg/cris/libc/sys.c:45:
+^Iint len = mystrlen(reason);$

ERROR: code indent should never use tabs
#472: FILE: tests/tcg/cris/libc/sys.c:46:
+^Iwrite (1, s, sizeof (s) - 1);$

ERROR: space prohibited between function name and open parenthesis '('
#472: FILE: tests/tcg/cris/libc/sys.c:46:
+       write (1, s, sizeof (s) - 1);

ERROR: space prohibited between function name and open parenthesis '('
#472: FILE: tests/tcg/cris/libc/sys.c:46:
+       write (1, s, sizeof (s) - 1);

ERROR: code indent should never use tabs
#473: FILE: tests/tcg/cris/libc/sys.c:47:
+^Iwrite (1, reason, len);$

ERROR: space prohibited between function name and open parenthesis '('
#473: FILE: tests/tcg/cris/libc/sys.c:47:
+       write (1, reason, len);

ERROR: code indent should never use tabs
#474: FILE: tests/tcg/cris/libc/sys.c:48:
+^Iwrite (1, "\n", 1);$

ERROR: space prohibited between function name and open parenthesis '('
#474: FILE: tests/tcg/cris/libc/sys.c:48:
+       write (1, "\n", 1);

ERROR: code indent should never use tabs
#475: FILE: tests/tcg/cris/libc/sys.c:49:
+//^Iexit (1);$

ERROR: do not use C99 // comments
#475: FILE: tests/tcg/cris/libc/sys.c:49:
+//     exit (1);

ERROR: space prohibited between function name and open parenthesis '('
#478: FILE: tests/tcg/cris/libc/sys.c:52:
+void *memset (void *s, int c, size_t n) {

ERROR: code indent should never use tabs
#479: FILE: tests/tcg/cris/libc/sys.c:53:
+^Ichar *p = s;$

ERROR: code indent should never use tabs
#480: FILE: tests/tcg/cris/libc/sys.c:54:
+^Iint i;$

ERROR: code indent should never use tabs
#481: FILE: tests/tcg/cris/libc/sys.c:55:
+^Ifor (i = 0; i < n; i++)$

ERROR: braces {} are necessary for all arms of this statement
#481: FILE: tests/tcg/cris/libc/sys.c:55:
+       for (i = 0; i < n; i++)
[...]

ERROR: code indent should never use tabs
#482: FILE: tests/tcg/cris/libc/sys.c:56:
+^I^Ip[i] = c;$

ERROR: code indent should never use tabs
#483: FILE: tests/tcg/cris/libc/sys.c:57:
+^Ireturn p;$

total: 54 errors, 1 warnings, 58 lines checked

Patch 10/16 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

11/16 Checking commit a85ea55327a0 (tests/tcg/cris: cleanup sys.c)
ERROR: space prohibited before that close parenthesis ')'
#47: FILE: tests/tcg/cris/bare/sys.c:16:
+                  : "memory" );

ERROR: space required before the open parenthesis '('
#48: FILE: tests/tcg/cris/bare/sys.c:17:
+    while(1);

ERROR: trailing statements should be on next line
#48: FILE: tests/tcg/cris/bare/sys.c:17:
+    while(1);

ERROR: braces {} are necessary for all arms of this statement
#48: FILE: tests/tcg/cris/bare/sys.c:17:
+    while(1);
[...]

ERROR: space prohibited between function name and open parenthesis '('
#82: FILE: tests/tcg/cris/bare/sys.c:48:
+    write(1, s, sizeof (s) - 1);

ERROR: space prohibited between function name and open parenthesis '('
#129: FILE: tests/tcg/cris/bare/sys.c:55:
+    write(1, s, sizeof (s) - 1);

ERROR: code indent should never use tabs
#150: FILE: tests/tcg/cris/libc/sys.c:12:
+^I^I      : "memory");$

ERROR: code indent should never use tabs
#178: FILE: tests/tcg/cris/libc/sys.c:43:
+^Iwrite (1, s, sizeof(s) - 1);$

ERROR: space prohibited between function name and open parenthesis '('
#178: FILE: tests/tcg/cris/libc/sys.c:43:
+       write (1, s, sizeof(s) - 1);

total: 9 errors, 0 warnings, 169 lines checked

Patch 11/16 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

12/16 Checking commit c156c313223c (tests/tcg/cris: comment out the ccs test)
13/16 Checking commit 74bfebc2ba91 (tests/tcg/cris: align mul operations)
14/16 Checking commit 1c72e410701f (tests/tcg: enable cris base user-mode tests)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#31: 
deleted file mode 100644

total: 0 errors, 1 warnings, 71 lines checked

Patch 14/16 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
15/16 Checking commit 5454ef35e853 (.travis.yml: separate softfloat from check-tcg)
16/16 Checking commit 3817cc66f810 (.travis.yml: add softmmu check-tcg tests)
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20190228202537.4638-1-alex.bennee@linaro.org/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PATCH v2 05/16] tests/tcg/mips: fix hello-mips compilation
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 05/16] tests/tcg/mips: fix hello-mips compilation Alex Bennée
@ 2019-02-28 22:42   ` Philippe Mathieu-Daudé
  2019-03-01  9:31     ` Alex Bennée
  0 siblings, 1 reply; 29+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-02-28 22:42 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel; +Cc: edgar.iglesias, qemu-arm, jcmvbkbc

Hi Alex,

On 2/28/19 9:25 PM, Alex Bennée wrote:
> The compilation flags for proper building are in the source tree. We
> also fix exit to 0 so the result is counted as a success.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  tests/tcg/mips/Makefile.target | 11 ++++-------
>  tests/tcg/mips/hello-mips.c    |  2 +-
>  2 files changed, 5 insertions(+), 8 deletions(-)
> 
> diff --git a/tests/tcg/mips/Makefile.target b/tests/tcg/mips/Makefile.target
> index 086625f533..1a994d5525 100644
> --- a/tests/tcg/mips/Makefile.target
> +++ b/tests/tcg/mips/Makefile.target
> @@ -8,15 +8,12 @@ MIPS_SRC=$(SRC_PATH)/tests/tcg/mips
>  # Set search path for all sources
>  VPATH 		+= $(MIPS_SRC)
>  
> +# hello-mips is 32 bit only

Correct.

> +ifeq ($(findstring 64,$(TARGET_NAME)),)
>  MIPS_TESTS=hello-mips
>  
>  TESTS += $(MIPS_TESTS)
>  
> -hello-mips: CFLAGS+=-ffreestanding
> +hello-mips: CFLAGS+=-mno-abicalls -fno-PIC -mabi=32

As suggested in the header.

>  hello-mips: LDFLAGS+=-nostdlib
> -
> -# For MIPS32 and 64 we have a bunch of extra tests in sub-directories
> -# however they are intended for system tests.
> -
> -run-hello-mips: hello-mips
> -	$(call skip-test, $<, "BROKEN")
> +endif
> diff --git a/tests/tcg/mips/hello-mips.c b/tests/tcg/mips/hello-mips.c
> index c7052fdf2e..4e1cf501af 100644
> --- a/tests/tcg/mips/hello-mips.c
> +++ b/tests/tcg/mips/hello-mips.c
> @@ -60,5 +60,5 @@ static inline int write(int fd, const char *buf, int len)
>  void __start(void)
>  {
>      write (1, "Hello, World!\n", 14);
> -    exit1 (42);

I understand 42 is to check SYS_exit1 worked, and this is not another
qemu-user exit. But we were previously never checked the exit code for
42. Neither are we checking 'Hello, World' on stdout.

> +    exit1(0);
>  }
> 

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PATCH v2 07/16] tests/tcg/xtensa: enable system tests
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 07/16] tests/tcg/xtensa: enable system tests Alex Bennée
@ 2019-02-28 22:54   ` Philippe Mathieu-Daudé
  2019-02-28 23:24     ` Max Filippov
  2019-02-28 23:29   ` Max Filippov
  1 sibling, 1 reply; 29+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-02-28 22:54 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel, jcmvbkbc; +Cc: edgar.iglesias, qemu-arm

On 2/28/19 9:25 PM, Alex Bennée wrote:
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> 
> ---
> v2
>   - use cross CC for linker
>   - fix up test selection to skip linker.ld.S
> ---
>  tests/tcg/xtensa/Makefile                | 93 ------------------------
>  tests/tcg/xtensa/Makefile.softmmu-target | 40 ++++++++++
>  2 files changed, 40 insertions(+), 93 deletions(-)
>  delete mode 100644 tests/tcg/xtensa/Makefile
>  create mode 100644 tests/tcg/xtensa/Makefile.softmmu-target
> 
> diff --git a/tests/tcg/xtensa/Makefile b/tests/tcg/xtensa/Makefile
> deleted file mode 100644
> index 2f5691f75b..0000000000
> --- a/tests/tcg/xtensa/Makefile
> +++ /dev/null
> @@ -1,93 +0,0 @@
> --include ../../../config-host.mak
> -
> -CORE=dc232b
> -CROSS=xtensa-$(CORE)-elf-
> -
> -ifndef XT
> -SIM = ../../../xtensa-softmmu/qemu-system-xtensa
> -SIMFLAGS = -M sim -cpu $(CORE) -nographic -semihosting -icount 6 $(EXTFLAGS) -kernel
> -SIMDEBUG = -s -S
> -else
> -SIM = xt-run
> -SIMFLAGS = --xtensa-core=DC_B_232L --exit_with_target_code $(EXTFLAGS)
> -SIMDEBUG = --gdbserve=0

Max: I think it should be quite easy to port your simulator to Alex's
new Makefile.
One possibility is adding tests/tcg/xtensa/Makefile.xt-run which set few
variables, include Makefile.softmmu-target and overwrite variables if
necessary.

BTW is this simulator downloadable? I see the Zephyr project also uses
it, and I looked for it on https://ip.cadence.com/swdev but couldnt find
a (public) link.

> -endif
> -
> -HOST_CC = gcc
> -CC      = $(CROSS)gcc
> -AS      = $(CROSS)gcc -x assembler-with-cpp
> -LD      = $(CROSS)ld
> -
> -XTENSA_SRC_PATH = $(SRC_PATH)/tests/tcg/xtensa
> -INCLUDE_DIRS = $(XTENSA_SRC_PATH) $(SRC_PATH)/target/xtensa/core-$(CORE)
> -XTENSA_INC = $(addprefix -I,$(INCLUDE_DIRS))
> -
> -LDFLAGS = -Tlinker.ld
> -
> -CRT        = crt.o vectors.o
> -
> -TESTCASES += test_b.tst
> -TESTCASES += test_bi.tst
> -#TESTCASES += test_boolean.tst
> -TESTCASES += test_break.tst
> -TESTCASES += test_bz.tst
> -TESTCASES += test_cache.tst
> -TESTCASES += test_clamps.tst
> -TESTCASES += test_extui.tst
> -TESTCASES += test_fail.tst
> -TESTCASES += test_interrupt.tst
> -TESTCASES += test_loop.tst
> -TESTCASES += test_mac16.tst
> -TESTCASES += test_max.tst
> -TESTCASES += test_min.tst
> -TESTCASES += test_mmu.tst
> -TESTCASES += test_mul16.tst
> -TESTCASES += test_mul32.tst
> -TESTCASES += test_nsa.tst
> -TESTCASES += test_phys_mem.tst
> -ifdef XT
> -TESTCASES += test_pipeline.tst
> -endif
> -TESTCASES += test_quo.tst
> -TESTCASES += test_rem.tst
> -TESTCASES += test_rst0.tst
> -TESTCASES += test_s32c1i.tst
> -TESTCASES += test_sar.tst
> -TESTCASES += test_sext.tst
> -TESTCASES += test_shift.tst
> -TESTCASES += test_sr.tst
> -TESTCASES += test_timer.tst
> -TESTCASES += test_windowed.tst
> -
> -all: build
> -
> -linker.ld: $(XTENSA_SRC_PATH)/linker.ld.S
> -	$(HOST_CC) $(XTENSA_INC) -E -P $< -o $@
> -
> -%.o: $(XTENSA_SRC_PATH)/%.c
> -	$(CC) $(XTENSA_INC) $(CFLAGS) -c $< -o $@
> -
> -%.o: $(XTENSA_SRC_PATH)/%.S
> -	$(CC) $(XTENSA_INC) $(ASFLAGS) -c $< -o $@
> -
> -%.tst: %.o linker.ld $(XTENSA_SRC_PATH)/macros.inc $(CRT) Makefile
> -	$(LD) $(LDFLAGS) $(NOSTDFLAGS) $(CRT) $< -o $@
> -
> -build: $(TESTCASES)
> -
> -check: $(addprefix run-, $(TESTCASES))
> -
> -run-%.tst: %.tst
> -	$(SIM) $(SIMFLAGS) ./$<
> -
> -run-test_fail.tst: test_fail.tst
> -	! $(SIM) $(SIMFLAGS) ./$<
> -
> -debug-%.tst: %.tst
> -	$(SIM) $(SIMDEBUG) $(SIMFLAGS) ./$<
> -
> -host-debug-%.tst: %.tst
> -	gdb --args $(SIM) $(SIMFLAGS) ./$<
> -
> -clean:
> -	$(RM) -fr $(TESTCASES) $(CRT) linker.ld
> diff --git a/tests/tcg/xtensa/Makefile.softmmu-target b/tests/tcg/xtensa/Makefile.softmmu-target
> new file mode 100644
> index 0000000000..1a4014506f
> --- /dev/null
> +++ b/tests/tcg/xtensa/Makefile.softmmu-target
> @@ -0,0 +1,40 @@
> +#
> +# Xtensa softmmu tests
> +#
> +
> +ifneq ($(TARGET_WORDS_BIGENDIAN),y)
> +
> +XTENSA_SRC = $(SRC_PATH)/tests/tcg/xtensa
> +XTENSA_ALL = $(filter-out $(XTENSA_SRC)/linker.ld.S,$(wildcard $(XTENSA_SRC)/*.S))
> +XTENSA_TESTS = $(patsubst $(XTENSA_SRC)/%.S, %, $(XTENSA_ALL))
> +# Filter out common blobs and broken tests
> +XTENSA_BROKEN_TESTS  = crt vectors test_boolean test_pipeline test_fail
> +XTENSA_USABLE_TESTS = $(filter-out $(XTENSA_BROKEN_TESTS), $(XTENSA_TESTS))
> +
> +# add to the list of tests
> +TESTS += $(XTENSA_USABLE_TESTS)
> +VPATH += $(XTENSA_SRC)
> +
> +CORE=dc232b
> +QEMU_OPTS+=-M sim -cpu $(CORE) -nographic -semihosting -icount 6 $(EXTFLAGS) -kernel
> +
> +INCLUDE_DIRS = $(SRC_PATH)/target/xtensa/core-$(CORE)
> +XTENSA_INC = $(addprefix -I,$(INCLUDE_DIRS))
> +
> +LDFLAGS = -Tlinker.ld -nostartfiles -nostdlib
> +
> +CRT        = crt.o vectors.o
> +
> +linker.ld: linker.ld.S
> +	$(CC) $(XTENSA_INC) -E -P $< -o $@
> +
> +$(XTENSA_USABLE_TESTS): linker.ld macros.inc $(CRT) Makefile.softmmu-target
> +
> +# special rule for common blobs
> +%.o: %.S
> +	$(CC) $(XTENSA_INC) $(ASFLAGS) -c $< -o $@
> +
> +%: %.S
> +	$(CC) $(XTENSA_INC) $(ASFLAGS) $< -o $@ $(LDFLAGS) $(NOSTDFLAGS) $(CRT)
> +
> +endif
> 

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PATCH v2 08/16] tests/tcg/arm: add ARMv6-M UNDEFINED 32-bit instruction test
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 08/16] tests/tcg/arm: add ARMv6-M UNDEFINED 32-bit instruction test Alex Bennée
@ 2019-02-28 22:56   ` Philippe Mathieu-Daudé
  2019-03-01  7:32     ` Alex Bennée
  0 siblings, 1 reply; 29+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-02-28 22:56 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel
  Cc: edgar.iglesias, qemu-arm, Stefan Hajnoczi, jcmvbkbc

On 2/28/19 9:25 PM, Alex Bennée wrote:
> From: Stefan Hajnoczi <stefanha@redhat.com>
> 
> Test that 32-bit instructions declared UNDEFINED in the ARMv6-M
> Reference Manual really do raise an exception.  Also test that the 6
> 32-bit instructions defined in the ARMv6-M Reference Manual do not raise
> an exception.
> 
> Based-on: <20181029194519.15628-1-stefanha@redhat.com>

^ cut 'Based-on' from git history?

> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> Message-Id: <20181129185113.30353-1-stefanha@redhat.com>
> [AJB: integrated into system tests]
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> 
> ---
> v2
>   - added to series
>   - used softmmu-target Makefile with single compile/link step
>   - launches with -kernel
>   - drop .hex file
> ---
>  tests/tcg/arm/Makefile.softmmu-target |  29 +++++
>  tests/tcg/arm/test-armv6m-undef.S     | 154 ++++++++++++++++++++++++++
>  tests/tcg/arm/test-armv6m-undef.ld    |  21 ++++
>  3 files changed, 204 insertions(+)
>  create mode 100644 tests/tcg/arm/Makefile.softmmu-target
>  create mode 100644 tests/tcg/arm/test-armv6m-undef.S
>  create mode 100644 tests/tcg/arm/test-armv6m-undef.ld
> 
> diff --git a/tests/tcg/arm/Makefile.softmmu-target b/tests/tcg/arm/Makefile.softmmu-target
> new file mode 100644
> index 0000000000..49d48d8a1c
> --- /dev/null
> +++ b/tests/tcg/arm/Makefile.softmmu-target
> @@ -0,0 +1,29 @@
> +# -*- Mode: makefile -*-
> +#
> +# ARM SoftMMU tests - included from tests/tcg/Makefile
> +#
> +
> +ifeq ($(TARGET_ABI_DIR),arm)
> +
> +ARM_SRC=$(SRC_PATH)/tests/tcg/arm
> +
> +# Set search path for all sources
> +VPATH 		+= $(ARM_SRC)
> +
> +ARM_TESTS=test-armv6m-undef
> +
> +TESTS += $(ARM_TESTS)
> +
> +CFLAGS+=-Wl,--build-id=none -x assembler-with-cpp
> +LDFLAGS+=-nostdlib -N -static
> +
> +%: %.S %.ld
> +	$(CC) $(CFLAGS) $(ASFLAGS) $< -o $@ $(LDFLAGS) -T $(ARM_SRC)/$@.ld
> +
> +# Specific Test Rules
> +
> +test-armv6m-undef: EXTRA_CFLAGS+=-mcpu=cortex-m0
> +
> +run-test-armv6m-undef: QEMU_OPTS+=-semihosting -M microbit -kernel
> +
> +endif
> diff --git a/tests/tcg/arm/test-armv6m-undef.S b/tests/tcg/arm/test-armv6m-undef.S
> new file mode 100644
> index 0000000000..d18ca56b4a
> --- /dev/null
> +++ b/tests/tcg/arm/test-armv6m-undef.S
> @@ -0,0 +1,154 @@
> +/*
> + * Test ARMv6-M UNDEFINED 32-bit instructions
> + *
> + * Copyright 2018 Red Hat Inc.
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2
> + * or later. See the COPYING file in the top-level directory.
> + */
> +
> +/*
> + * Test that UNDEFINED 32-bit instructions fault as expected.  This is an
> + * interesting test because ARMv6-M shares code with its more fully-featured
> + * siblings and it's necessary to verify that its limited instruction set is
> + * emulated correctly.
> + *
> + * The emulator must be invoked with -semihosting so that the test case can
> + * terminate with exit code 0 on success or 1 on failure.
> + *
> + * Failures can be debugged with -d in_asm,int,exec,cpu and the
> + * gdbstub (-S -s).
> + */
> +
> +.syntax unified
> +.cpu cortex-m0
> +.thumb
> +
> +/*
> + * Memory map
> + */
> +#define SRAM_BASE 0x20000000
> +#define SRAM_SIZE (16 * 1024)
> +
> +/*
> + * Semihosting interface on ARM T32
> + * See "Semihosting for AArch32 and AArch64 Version 2.0 Documentation" by ARM
> + */
> +#define semihosting_call bkpt 0xab
> +#define SYS_EXIT 0x18
> +
> +vector_table:
> +    .word SRAM_BASE + SRAM_SIZE /* 0. SP_main */
> +    .word exc_reset_thumb       /* 1. Reset */
> +    .word 0                     /* 2. NMI */
> +    .word exc_hard_fault_thumb  /* 3. HardFault */
> +    .rept 7
> +    .word 0                     /* 4-10. Reserved */
> +    .endr
> +    .word 0                     /* 11. SVCall */
> +    .word 0                     /* 12. Reserved */
> +    .word 0                     /* 13. Reserved */
> +    .word 0                     /* 14. PendSV */
> +    .word 0                     /* 15. SysTick */
> +    .rept 32
> +    .word 0                     /* 16-47. External Interrupts */
> +    .endr
> +
> +exc_reset:
> +.equ exc_reset_thumb, exc_reset + 1
> +.global exc_reset_thumb
> +    /* The following 32-bit UNDEFINED instructions are tested by executing
> +     * them.  The HardFault exception handler should execute and return to
> +     * the next test case.  If no exception is raised the test fails.
> +     */
> +
> +    /* Table A5-9 32-bit Thumb encoding */
> +    .short 0b1110100000000000
> +    .short 0b0000000000000000
> +    b not_reached
> +    .short 0b1110100000000000
> +    .short 0b1000000000000000
> +    b not_reached
> +    .short 0b1111100000000000
> +    .short 0b0000000000000000
> +    b not_reached
> +    .short 0b1111100000000000
> +    .short 0b1000000000000000
> +    b not_reached
> +    .short 0b1111000000000000
> +    .short 0b0000000000000000
> +    b not_reached
> +
> +    /* Table A5-10 Branch and miscellaneous control instructions */
> +    .short 0b1111011111110000
> +    .short 0b1010000000000000
> +    b not_reached
> +
> +    /* The following are valid 32-bit instructions that must not raise a
> +     * HardFault.
> +     */
> +
> +    /* B4.2.3 Move to Special Register (moves to IPSR are ignored) */
> +    msr ipsr, r0
> +    b 1f
> +    b not_reached
> +1:
> +    /* B4.2.2 Move from Special Register */
> +    mrs r0, ipsr
> +    b 1f
> +    b not_reached
> +1:
> +    /* A6.7.13 Branch with Link (immediate) */
> +    bl 1f
> +1:
> +    b 1f
> +    b not_reached
> +1:
> +    /* A6.7.21 Data Memory Barrier */
> +    dmb
> +    b 1f
> +    b not_reached
> +1:
> +    /* A6.7.22 Data Synchronization Barrier */
> +    dsb
> +    b 1f
> +    b not_reached
> +1:
> +    /* A6.7.24 Instruction Memory Barrier */
> +    isb
> +    b 1f
> +    b not_reached
> +1:
> +
> +    /* Success! */
> +    movs r0, 1
> +    b exit
> +
> +not_reached: /* Failure :( */
> +    movs r0, 0
> +    b exit
> +
> +/* When a HardFault occurs, return to pc+6 (test cases are 3 halfwords long) */
> +exc_hard_fault:
> +.equ exc_hard_fault_thumb, exc_hard_fault + 1
> +.global exc_hard_fault_thumb
> +    ldr r0, [sp, 0x18]
> +    adds r0, 6
> +    str r0, [sp, 0x18]
> +    bx lr
> +
> +/*
> + * exit: Terminate emulator
> + * @r0: 0 - failure, 1 - success
> + */
> +exit:
> +    movs r1, 0
> +    cmp r0, 1
> +    bne 1f
> +    ldr r1, ADP_Stopped_ApplicationExit
> +1:
> +    movs r0, SYS_EXIT
> +    semihosting_call
> +.align 2
> +ADP_Stopped_ApplicationExit:
> +    .word 0x20026
> diff --git a/tests/tcg/arm/test-armv6m-undef.ld b/tests/tcg/arm/test-armv6m-undef.ld
> new file mode 100644
> index 0000000000..43dbbf17d5
> --- /dev/null
> +++ b/tests/tcg/arm/test-armv6m-undef.ld
> @@ -0,0 +1,21 @@
> +ENTRY(exc_reset_thumb)
> +
> +SECTIONS
> +{
> +    . = 0x0;
> +    .text : {
> +        *(.text)
> +    }
> +    .data : {
> +        *(.data)
> +    }
> +    .rodata : {
> +        *(.rodata)
> +    }
> +    .bss : {
> +        *(.bss)
> +    }
> +    /DISCARD/ : {
> +        *(.ARM.attributes)
> +    }
> +}
> 

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PATCH v2 10/16] tests/tcg: split cris tests into bare and libc directories
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 10/16] tests/tcg: split cris tests into bare and libc directories Alex Bennée
@ 2019-02-28 23:07   ` Philippe Mathieu-Daudé
  2019-02-28 23:21     ` Philippe Mathieu-Daudé
  0 siblings, 1 reply; 29+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-02-28 23:07 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel; +Cc: edgar.iglesias, qemu-arm, jcmvbkbc

Hi Alex,

On 2/28/19 9:25 PM, Alex Bennée wrote:
> Bare tests are standalone assembly tests that don't require linking to
> any libc and hence can be built with kernel only compilers. The libc
> tests need a compiler capable of building properly linked userspace
> binaries. As we don't have such a cross compiler at the moment we
> won't be building those tests.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> 
> ---
> v2
>   - split between bare/libc instead of system/user
> ---
>  tests/tcg/cris/{ => bare}/check_addcv17.s     |  0
>  tests/tcg/cris/{ => bare}/check_addi.s        |  0
>  tests/tcg/cris/{ => bare}/check_addiv32.s     |  0
>  tests/tcg/cris/{ => bare}/check_addm.s        |  0
>  tests/tcg/cris/{ => bare}/check_addq.s        |  0
>  tests/tcg/cris/{ => bare}/check_addr.s        |  0
>  tests/tcg/cris/{ => bare}/check_addxc.s       |  0
>  tests/tcg/cris/{ => bare}/check_addxm.s       |  0
>  tests/tcg/cris/{ => bare}/check_addxr.s       |  0
>  tests/tcg/cris/{ => bare}/check_andc.s        |  0
>  tests/tcg/cris/{ => bare}/check_andm.s        |  0
>  tests/tcg/cris/{ => bare}/check_andq.s        |  0
>  tests/tcg/cris/{ => bare}/check_andr.s        |  0
>  tests/tcg/cris/{ => bare}/check_asr.s         |  0
>  tests/tcg/cris/{ => bare}/check_ba.s          |  0
>  tests/tcg/cris/{ => bare}/check_bas.s         |  0
>  tests/tcg/cris/{ => bare}/check_bcc.s         |  0
>  tests/tcg/cris/{ => bare}/check_boundc.s      |  0
>  tests/tcg/cris/{ => bare}/check_boundr.s      |  0
>  tests/tcg/cris/{ => bare}/check_btst.s        |  0
>  tests/tcg/cris/{ => bare}/check_clearfv32.s   |  0
>  tests/tcg/cris/{ => bare}/check_clrjmp1.s     |  0
>  tests/tcg/cris/{ => bare}/check_cmp-2.s       |  0
>  tests/tcg/cris/{ => bare}/check_cmpc.s        |  0
>  tests/tcg/cris/{ => bare}/check_cmpm.s        |  0
>  tests/tcg/cris/{ => bare}/check_cmpq.s        |  0
>  tests/tcg/cris/{ => bare}/check_cmpr.s        |  0
>  tests/tcg/cris/{ => bare}/check_cmpxc.s       |  0
>  tests/tcg/cris/{ => bare}/check_cmpxm.s       |  0
>  tests/tcg/cris/{ => bare}/check_dstep.s       |  0
>  tests/tcg/cris/{ => bare}/check_jsr.s         |  0
>  tests/tcg/cris/{ => bare}/check_lapc.s        |  0
>  tests/tcg/cris/{ => bare}/check_lsl.s         |  0
>  tests/tcg/cris/{ => bare}/check_lsr.s         |  0
>  tests/tcg/cris/{ => bare}/check_mcp.s         |  0
>  tests/tcg/cris/{ => bare}/check_movdelsr1.s   |  0
>  tests/tcg/cris/{ => bare}/check_movecr.s      |  0
>  tests/tcg/cris/{ => bare}/check_movei.s       |  0
>  tests/tcg/cris/{ => bare}/check_movemr.s      |  0
>  tests/tcg/cris/{ => bare}/check_movemrv32.s   |  0
>  tests/tcg/cris/{ => bare}/check_mover.s       |  0
>  tests/tcg/cris/{ => bare}/check_moverm.s      |  0
>  tests/tcg/cris/{ => bare}/check_movmp.s       |  0
>  tests/tcg/cris/{ => bare}/check_movpmv32.s    |  0
>  tests/tcg/cris/{ => bare}/check_movpr.s       |  0
>  tests/tcg/cris/{ => bare}/check_movprv32.s    |  0
>  tests/tcg/cris/{ => bare}/check_movscr.s      |  0
>  tests/tcg/cris/{ => bare}/check_movsm.s       |  0
>  tests/tcg/cris/{ => bare}/check_movsr.s       |  0
>  tests/tcg/cris/{ => bare}/check_movucr.s      |  0
>  tests/tcg/cris/{ => bare}/check_movum.s       |  0
>  tests/tcg/cris/{ => bare}/check_movur.s       |  0
>  tests/tcg/cris/{ => bare}/check_mulv32.s      |  0
>  tests/tcg/cris/{ => bare}/check_mulx.s        |  0
>  tests/tcg/cris/{ => bare}/check_neg.s         |  0
>  tests/tcg/cris/{ => bare}/check_not.s         |  0
>  tests/tcg/cris/{ => bare}/check_orc.s         |  0
>  tests/tcg/cris/{ => bare}/check_orm.s         |  0
>  tests/tcg/cris/{ => bare}/check_orq.s         |  0
>  tests/tcg/cris/{ => bare}/check_orr.s         |  0
>  tests/tcg/cris/{ => bare}/check_ret.s         |  0
>  tests/tcg/cris/{ => bare}/check_scc.s         |  0
>  tests/tcg/cris/{ => bare}/check_subc.s        |  0
>  tests/tcg/cris/{ => bare}/check_subm.s        |  0
>  tests/tcg/cris/{ => bare}/check_subq.s        |  0
>  tests/tcg/cris/{ => bare}/check_subr.s        |  0
>  tests/tcg/cris/{ => bare}/check_xarith.s      |  0
>  tests/tcg/cris/{ => bare}/crt.s               |  0
>  tests/tcg/cris/{ => bare}/sys.c               |  0

Here you move the current sys.c which includes stdio/stdlib/unistd to
bare ...

>  tests/tcg/cris/{ => bare}/testutils.inc       |  0
>  tests/tcg/cris/{ => libc}/check_abs.c         |  0
>  tests/tcg/cris/{ => libc}/check_addc.c        |  0
>  tests/tcg/cris/{ => libc}/check_addcm.c       |  0
>  tests/tcg/cris/{ => libc}/check_addo.c        |  0
>  tests/tcg/cris/{ => libc}/check_addoq.c       |  0
>  tests/tcg/cris/{ => libc}/check_bound.c       |  0
>  tests/tcg/cris/{ => libc}/check_ftag.c        |  0
>  .../{ => libc}/check_gcctorture_pr28634-1.c   |  0
>  .../{ => libc}/check_gcctorture_pr28634.c     |  0
>  .../{ => libc}/check_glibc_kernelversion.c    |  0
>  tests/tcg/cris/{ => libc}/check_hello.c       |  0
>  tests/tcg/cris/{ => libc}/check_int64.c       |  0
>  tests/tcg/cris/{ => libc}/check_lz.c          |  0
>  tests/tcg/cris/{ => libc}/check_mapbrk.c      |  0
>  tests/tcg/cris/{ => libc}/check_mmap1.c       |  0
>  tests/tcg/cris/{ => libc}/check_mmap2.c       |  0
>  tests/tcg/cris/{ => libc}/check_mmap3.c       |  0
>  tests/tcg/cris/{ => libc}/check_moveq.c       |  0
>  tests/tcg/cris/{ => libc}/check_openpf1.c     |  0
>  tests/tcg/cris/{ => libc}/check_openpf2.c     |  0
>  tests/tcg/cris/{ => libc}/check_openpf3.c     |  0
>  tests/tcg/cris/{ => libc}/check_openpf5.c     |  0
>  tests/tcg/cris/{ => libc}/check_settls1.c     |  0
>  tests/tcg/cris/{ => libc}/check_sigalrm.c     |  0
>  tests/tcg/cris/{ => libc}/check_stat1.c       |  0
>  tests/tcg/cris/{ => libc}/check_stat2.c       |  0
>  tests/tcg/cris/{ => libc}/check_stat3.c       |  0
>  tests/tcg/cris/{ => libc}/check_stat4.c       |  0
>  tests/tcg/cris/{ => libc}/check_swap.c        |  0
>  tests/tcg/cris/{ => libc}/check_time2.c       |  0
>  tests/tcg/cris/{ => libc}/crisutils.h         |  0
>  tests/tcg/cris/libc/sys.c                     | 58 +++++++++++++++++++
>  tests/tcg/cris/{ => libc}/sys.h               |  0
>  103 files changed, 58 insertions(+)
>  rename tests/tcg/cris/{ => bare}/check_addcv17.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_addi.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_addiv32.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_addm.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_addq.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_addr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_addxc.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_addxm.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_addxr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_andc.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_andm.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_andq.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_andr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_asr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_ba.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_bas.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_bcc.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_boundc.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_boundr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_btst.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_clearfv32.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_clrjmp1.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_cmp-2.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_cmpc.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_cmpm.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_cmpq.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_cmpr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_cmpxc.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_cmpxm.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_dstep.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_jsr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_lapc.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_lsl.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_lsr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_mcp.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_movdelsr1.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_movecr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_movei.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_movemr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_movemrv32.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_mover.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_moverm.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_movmp.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_movpmv32.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_movpr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_movprv32.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_movscr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_movsm.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_movsr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_movucr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_movum.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_movur.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_mulv32.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_mulx.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_neg.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_not.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_orc.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_orm.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_orq.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_orr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_ret.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_scc.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_subc.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_subm.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_subq.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_subr.s (100%)
>  rename tests/tcg/cris/{ => bare}/check_xarith.s (100%)
>  rename tests/tcg/cris/{ => bare}/crt.s (100%)
>  rename tests/tcg/cris/{ => bare}/sys.c (100%)
>  rename tests/tcg/cris/{ => bare}/testutils.inc (100%)
>  rename tests/tcg/cris/{ => libc}/check_abs.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_addc.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_addcm.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_addo.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_addoq.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_bound.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_ftag.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_gcctorture_pr28634-1.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_gcctorture_pr28634.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_glibc_kernelversion.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_hello.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_int64.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_lz.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_mapbrk.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_mmap1.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_mmap2.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_mmap3.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_moveq.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_openpf1.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_openpf2.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_openpf3.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_openpf5.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_settls1.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_sigalrm.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_stat1.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_stat2.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_stat3.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_stat4.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_swap.c (100%)
>  rename tests/tcg/cris/{ => libc}/check_time2.c (100%)
>  rename tests/tcg/cris/{ => libc}/crisutils.h (100%)
>  create mode 100644 tests/tcg/cris/libc/sys.c
>  rename tests/tcg/cris/{ => libc}/sys.h (100%)
> 
> diff --git a/tests/tcg/cris/check_addcv17.s b/tests/tcg/cris/bare/check_addcv17.s
> similarity index 100%
> rename from tests/tcg/cris/check_addcv17.s
> rename to tests/tcg/cris/bare/check_addcv17.s
> diff --git a/tests/tcg/cris/check_addi.s b/tests/tcg/cris/bare/check_addi.s
> similarity index 100%
> rename from tests/tcg/cris/check_addi.s
> rename to tests/tcg/cris/bare/check_addi.s
> diff --git a/tests/tcg/cris/check_addiv32.s b/tests/tcg/cris/bare/check_addiv32.s
> similarity index 100%
> rename from tests/tcg/cris/check_addiv32.s
> rename to tests/tcg/cris/bare/check_addiv32.s
> diff --git a/tests/tcg/cris/check_addm.s b/tests/tcg/cris/bare/check_addm.s
> similarity index 100%
> rename from tests/tcg/cris/check_addm.s
> rename to tests/tcg/cris/bare/check_addm.s
> diff --git a/tests/tcg/cris/check_addq.s b/tests/tcg/cris/bare/check_addq.s
> similarity index 100%
> rename from tests/tcg/cris/check_addq.s
> rename to tests/tcg/cris/bare/check_addq.s
> diff --git a/tests/tcg/cris/check_addr.s b/tests/tcg/cris/bare/check_addr.s
> similarity index 100%
> rename from tests/tcg/cris/check_addr.s
> rename to tests/tcg/cris/bare/check_addr.s
> diff --git a/tests/tcg/cris/check_addxc.s b/tests/tcg/cris/bare/check_addxc.s
> similarity index 100%
> rename from tests/tcg/cris/check_addxc.s
> rename to tests/tcg/cris/bare/check_addxc.s
> diff --git a/tests/tcg/cris/check_addxm.s b/tests/tcg/cris/bare/check_addxm.s
> similarity index 100%
> rename from tests/tcg/cris/check_addxm.s
> rename to tests/tcg/cris/bare/check_addxm.s
> diff --git a/tests/tcg/cris/check_addxr.s b/tests/tcg/cris/bare/check_addxr.s
> similarity index 100%
> rename from tests/tcg/cris/check_addxr.s
> rename to tests/tcg/cris/bare/check_addxr.s
> diff --git a/tests/tcg/cris/check_andc.s b/tests/tcg/cris/bare/check_andc.s
> similarity index 100%
> rename from tests/tcg/cris/check_andc.s
> rename to tests/tcg/cris/bare/check_andc.s
> diff --git a/tests/tcg/cris/check_andm.s b/tests/tcg/cris/bare/check_andm.s
> similarity index 100%
> rename from tests/tcg/cris/check_andm.s
> rename to tests/tcg/cris/bare/check_andm.s
> diff --git a/tests/tcg/cris/check_andq.s b/tests/tcg/cris/bare/check_andq.s
> similarity index 100%
> rename from tests/tcg/cris/check_andq.s
> rename to tests/tcg/cris/bare/check_andq.s
> diff --git a/tests/tcg/cris/check_andr.s b/tests/tcg/cris/bare/check_andr.s
> similarity index 100%
> rename from tests/tcg/cris/check_andr.s
> rename to tests/tcg/cris/bare/check_andr.s
> diff --git a/tests/tcg/cris/check_asr.s b/tests/tcg/cris/bare/check_asr.s
> similarity index 100%
> rename from tests/tcg/cris/check_asr.s
> rename to tests/tcg/cris/bare/check_asr.s
> diff --git a/tests/tcg/cris/check_ba.s b/tests/tcg/cris/bare/check_ba.s
> similarity index 100%
> rename from tests/tcg/cris/check_ba.s
> rename to tests/tcg/cris/bare/check_ba.s
> diff --git a/tests/tcg/cris/check_bas.s b/tests/tcg/cris/bare/check_bas.s
> similarity index 100%
> rename from tests/tcg/cris/check_bas.s
> rename to tests/tcg/cris/bare/check_bas.s
> diff --git a/tests/tcg/cris/check_bcc.s b/tests/tcg/cris/bare/check_bcc.s
> similarity index 100%
> rename from tests/tcg/cris/check_bcc.s
> rename to tests/tcg/cris/bare/check_bcc.s
> diff --git a/tests/tcg/cris/check_boundc.s b/tests/tcg/cris/bare/check_boundc.s
> similarity index 100%
> rename from tests/tcg/cris/check_boundc.s
> rename to tests/tcg/cris/bare/check_boundc.s
> diff --git a/tests/tcg/cris/check_boundr.s b/tests/tcg/cris/bare/check_boundr.s
> similarity index 100%
> rename from tests/tcg/cris/check_boundr.s
> rename to tests/tcg/cris/bare/check_boundr.s
> diff --git a/tests/tcg/cris/check_btst.s b/tests/tcg/cris/bare/check_btst.s
> similarity index 100%
> rename from tests/tcg/cris/check_btst.s
> rename to tests/tcg/cris/bare/check_btst.s
> diff --git a/tests/tcg/cris/check_clearfv32.s b/tests/tcg/cris/bare/check_clearfv32.s
> similarity index 100%
> rename from tests/tcg/cris/check_clearfv32.s
> rename to tests/tcg/cris/bare/check_clearfv32.s
> diff --git a/tests/tcg/cris/check_clrjmp1.s b/tests/tcg/cris/bare/check_clrjmp1.s
> similarity index 100%
> rename from tests/tcg/cris/check_clrjmp1.s
> rename to tests/tcg/cris/bare/check_clrjmp1.s
> diff --git a/tests/tcg/cris/check_cmp-2.s b/tests/tcg/cris/bare/check_cmp-2.s
> similarity index 100%
> rename from tests/tcg/cris/check_cmp-2.s
> rename to tests/tcg/cris/bare/check_cmp-2.s
> diff --git a/tests/tcg/cris/check_cmpc.s b/tests/tcg/cris/bare/check_cmpc.s
> similarity index 100%
> rename from tests/tcg/cris/check_cmpc.s
> rename to tests/tcg/cris/bare/check_cmpc.s
> diff --git a/tests/tcg/cris/check_cmpm.s b/tests/tcg/cris/bare/check_cmpm.s
> similarity index 100%
> rename from tests/tcg/cris/check_cmpm.s
> rename to tests/tcg/cris/bare/check_cmpm.s
> diff --git a/tests/tcg/cris/check_cmpq.s b/tests/tcg/cris/bare/check_cmpq.s
> similarity index 100%
> rename from tests/tcg/cris/check_cmpq.s
> rename to tests/tcg/cris/bare/check_cmpq.s
> diff --git a/tests/tcg/cris/check_cmpr.s b/tests/tcg/cris/bare/check_cmpr.s
> similarity index 100%
> rename from tests/tcg/cris/check_cmpr.s
> rename to tests/tcg/cris/bare/check_cmpr.s
> diff --git a/tests/tcg/cris/check_cmpxc.s b/tests/tcg/cris/bare/check_cmpxc.s
> similarity index 100%
> rename from tests/tcg/cris/check_cmpxc.s
> rename to tests/tcg/cris/bare/check_cmpxc.s
> diff --git a/tests/tcg/cris/check_cmpxm.s b/tests/tcg/cris/bare/check_cmpxm.s
> similarity index 100%
> rename from tests/tcg/cris/check_cmpxm.s
> rename to tests/tcg/cris/bare/check_cmpxm.s
> diff --git a/tests/tcg/cris/check_dstep.s b/tests/tcg/cris/bare/check_dstep.s
> similarity index 100%
> rename from tests/tcg/cris/check_dstep.s
> rename to tests/tcg/cris/bare/check_dstep.s
> diff --git a/tests/tcg/cris/check_jsr.s b/tests/tcg/cris/bare/check_jsr.s
> similarity index 100%
> rename from tests/tcg/cris/check_jsr.s
> rename to tests/tcg/cris/bare/check_jsr.s
> diff --git a/tests/tcg/cris/check_lapc.s b/tests/tcg/cris/bare/check_lapc.s
> similarity index 100%
> rename from tests/tcg/cris/check_lapc.s
> rename to tests/tcg/cris/bare/check_lapc.s
> diff --git a/tests/tcg/cris/check_lsl.s b/tests/tcg/cris/bare/check_lsl.s
> similarity index 100%
> rename from tests/tcg/cris/check_lsl.s
> rename to tests/tcg/cris/bare/check_lsl.s
> diff --git a/tests/tcg/cris/check_lsr.s b/tests/tcg/cris/bare/check_lsr.s
> similarity index 100%
> rename from tests/tcg/cris/check_lsr.s
> rename to tests/tcg/cris/bare/check_lsr.s
> diff --git a/tests/tcg/cris/check_mcp.s b/tests/tcg/cris/bare/check_mcp.s
> similarity index 100%
> rename from tests/tcg/cris/check_mcp.s
> rename to tests/tcg/cris/bare/check_mcp.s
> diff --git a/tests/tcg/cris/check_movdelsr1.s b/tests/tcg/cris/bare/check_movdelsr1.s
> similarity index 100%
> rename from tests/tcg/cris/check_movdelsr1.s
> rename to tests/tcg/cris/bare/check_movdelsr1.s
> diff --git a/tests/tcg/cris/check_movecr.s b/tests/tcg/cris/bare/check_movecr.s
> similarity index 100%
> rename from tests/tcg/cris/check_movecr.s
> rename to tests/tcg/cris/bare/check_movecr.s
> diff --git a/tests/tcg/cris/check_movei.s b/tests/tcg/cris/bare/check_movei.s
> similarity index 100%
> rename from tests/tcg/cris/check_movei.s
> rename to tests/tcg/cris/bare/check_movei.s
> diff --git a/tests/tcg/cris/check_movemr.s b/tests/tcg/cris/bare/check_movemr.s
> similarity index 100%
> rename from tests/tcg/cris/check_movemr.s
> rename to tests/tcg/cris/bare/check_movemr.s
> diff --git a/tests/tcg/cris/check_movemrv32.s b/tests/tcg/cris/bare/check_movemrv32.s
> similarity index 100%
> rename from tests/tcg/cris/check_movemrv32.s
> rename to tests/tcg/cris/bare/check_movemrv32.s
> diff --git a/tests/tcg/cris/check_mover.s b/tests/tcg/cris/bare/check_mover.s
> similarity index 100%
> rename from tests/tcg/cris/check_mover.s
> rename to tests/tcg/cris/bare/check_mover.s
> diff --git a/tests/tcg/cris/check_moverm.s b/tests/tcg/cris/bare/check_moverm.s
> similarity index 100%
> rename from tests/tcg/cris/check_moverm.s
> rename to tests/tcg/cris/bare/check_moverm.s
> diff --git a/tests/tcg/cris/check_movmp.s b/tests/tcg/cris/bare/check_movmp.s
> similarity index 100%
> rename from tests/tcg/cris/check_movmp.s
> rename to tests/tcg/cris/bare/check_movmp.s
> diff --git a/tests/tcg/cris/check_movpmv32.s b/tests/tcg/cris/bare/check_movpmv32.s
> similarity index 100%
> rename from tests/tcg/cris/check_movpmv32.s
> rename to tests/tcg/cris/bare/check_movpmv32.s
> diff --git a/tests/tcg/cris/check_movpr.s b/tests/tcg/cris/bare/check_movpr.s
> similarity index 100%
> rename from tests/tcg/cris/check_movpr.s
> rename to tests/tcg/cris/bare/check_movpr.s
> diff --git a/tests/tcg/cris/check_movprv32.s b/tests/tcg/cris/bare/check_movprv32.s
> similarity index 100%
> rename from tests/tcg/cris/check_movprv32.s
> rename to tests/tcg/cris/bare/check_movprv32.s
> diff --git a/tests/tcg/cris/check_movscr.s b/tests/tcg/cris/bare/check_movscr.s
> similarity index 100%
> rename from tests/tcg/cris/check_movscr.s
> rename to tests/tcg/cris/bare/check_movscr.s
> diff --git a/tests/tcg/cris/check_movsm.s b/tests/tcg/cris/bare/check_movsm.s
> similarity index 100%
> rename from tests/tcg/cris/check_movsm.s
> rename to tests/tcg/cris/bare/check_movsm.s
> diff --git a/tests/tcg/cris/check_movsr.s b/tests/tcg/cris/bare/check_movsr.s
> similarity index 100%
> rename from tests/tcg/cris/check_movsr.s
> rename to tests/tcg/cris/bare/check_movsr.s
> diff --git a/tests/tcg/cris/check_movucr.s b/tests/tcg/cris/bare/check_movucr.s
> similarity index 100%
> rename from tests/tcg/cris/check_movucr.s
> rename to tests/tcg/cris/bare/check_movucr.s
> diff --git a/tests/tcg/cris/check_movum.s b/tests/tcg/cris/bare/check_movum.s
> similarity index 100%
> rename from tests/tcg/cris/check_movum.s
> rename to tests/tcg/cris/bare/check_movum.s
> diff --git a/tests/tcg/cris/check_movur.s b/tests/tcg/cris/bare/check_movur.s
> similarity index 100%
> rename from tests/tcg/cris/check_movur.s
> rename to tests/tcg/cris/bare/check_movur.s
> diff --git a/tests/tcg/cris/check_mulv32.s b/tests/tcg/cris/bare/check_mulv32.s
> similarity index 100%
> rename from tests/tcg/cris/check_mulv32.s
> rename to tests/tcg/cris/bare/check_mulv32.s
> diff --git a/tests/tcg/cris/check_mulx.s b/tests/tcg/cris/bare/check_mulx.s
> similarity index 100%
> rename from tests/tcg/cris/check_mulx.s
> rename to tests/tcg/cris/bare/check_mulx.s
> diff --git a/tests/tcg/cris/check_neg.s b/tests/tcg/cris/bare/check_neg.s
> similarity index 100%
> rename from tests/tcg/cris/check_neg.s
> rename to tests/tcg/cris/bare/check_neg.s
> diff --git a/tests/tcg/cris/check_not.s b/tests/tcg/cris/bare/check_not.s
> similarity index 100%
> rename from tests/tcg/cris/check_not.s
> rename to tests/tcg/cris/bare/check_not.s
> diff --git a/tests/tcg/cris/check_orc.s b/tests/tcg/cris/bare/check_orc.s
> similarity index 100%
> rename from tests/tcg/cris/check_orc.s
> rename to tests/tcg/cris/bare/check_orc.s
> diff --git a/tests/tcg/cris/check_orm.s b/tests/tcg/cris/bare/check_orm.s
> similarity index 100%
> rename from tests/tcg/cris/check_orm.s
> rename to tests/tcg/cris/bare/check_orm.s
> diff --git a/tests/tcg/cris/check_orq.s b/tests/tcg/cris/bare/check_orq.s
> similarity index 100%
> rename from tests/tcg/cris/check_orq.s
> rename to tests/tcg/cris/bare/check_orq.s
> diff --git a/tests/tcg/cris/check_orr.s b/tests/tcg/cris/bare/check_orr.s
> similarity index 100%
> rename from tests/tcg/cris/check_orr.s
> rename to tests/tcg/cris/bare/check_orr.s
> diff --git a/tests/tcg/cris/check_ret.s b/tests/tcg/cris/bare/check_ret.s
> similarity index 100%
> rename from tests/tcg/cris/check_ret.s
> rename to tests/tcg/cris/bare/check_ret.s
> diff --git a/tests/tcg/cris/check_scc.s b/tests/tcg/cris/bare/check_scc.s
> similarity index 100%
> rename from tests/tcg/cris/check_scc.s
> rename to tests/tcg/cris/bare/check_scc.s
> diff --git a/tests/tcg/cris/check_subc.s b/tests/tcg/cris/bare/check_subc.s
> similarity index 100%
> rename from tests/tcg/cris/check_subc.s
> rename to tests/tcg/cris/bare/check_subc.s
> diff --git a/tests/tcg/cris/check_subm.s b/tests/tcg/cris/bare/check_subm.s
> similarity index 100%
> rename from tests/tcg/cris/check_subm.s
> rename to tests/tcg/cris/bare/check_subm.s
> diff --git a/tests/tcg/cris/check_subq.s b/tests/tcg/cris/bare/check_subq.s
> similarity index 100%
> rename from tests/tcg/cris/check_subq.s
> rename to tests/tcg/cris/bare/check_subq.s
> diff --git a/tests/tcg/cris/check_subr.s b/tests/tcg/cris/bare/check_subr.s
> similarity index 100%
> rename from tests/tcg/cris/check_subr.s
> rename to tests/tcg/cris/bare/check_subr.s
> diff --git a/tests/tcg/cris/check_xarith.s b/tests/tcg/cris/bare/check_xarith.s
> similarity index 100%
> rename from tests/tcg/cris/check_xarith.s
> rename to tests/tcg/cris/bare/check_xarith.s
> diff --git a/tests/tcg/cris/crt.s b/tests/tcg/cris/bare/crt.s
> similarity index 100%
> rename from tests/tcg/cris/crt.s
> rename to tests/tcg/cris/bare/crt.s
> diff --git a/tests/tcg/cris/sys.c b/tests/tcg/cris/bare/sys.c
> similarity index 100%
> rename from tests/tcg/cris/sys.c
> rename to tests/tcg/cris/bare/sys.c
> diff --git a/tests/tcg/cris/testutils.inc b/tests/tcg/cris/bare/testutils.inc
> similarity index 100%
> rename from tests/tcg/cris/testutils.inc
> rename to tests/tcg/cris/bare/testutils.inc
> diff --git a/tests/tcg/cris/check_abs.c b/tests/tcg/cris/libc/check_abs.c
> similarity index 100%
> rename from tests/tcg/cris/check_abs.c
> rename to tests/tcg/cris/libc/check_abs.c
> diff --git a/tests/tcg/cris/check_addc.c b/tests/tcg/cris/libc/check_addc.c
> similarity index 100%
> rename from tests/tcg/cris/check_addc.c
> rename to tests/tcg/cris/libc/check_addc.c
> diff --git a/tests/tcg/cris/check_addcm.c b/tests/tcg/cris/libc/check_addcm.c
> similarity index 100%
> rename from tests/tcg/cris/check_addcm.c
> rename to tests/tcg/cris/libc/check_addcm.c
> diff --git a/tests/tcg/cris/check_addo.c b/tests/tcg/cris/libc/check_addo.c
> similarity index 100%
> rename from tests/tcg/cris/check_addo.c
> rename to tests/tcg/cris/libc/check_addo.c
> diff --git a/tests/tcg/cris/check_addoq.c b/tests/tcg/cris/libc/check_addoq.c
> similarity index 100%
> rename from tests/tcg/cris/check_addoq.c
> rename to tests/tcg/cris/libc/check_addoq.c
> diff --git a/tests/tcg/cris/check_bound.c b/tests/tcg/cris/libc/check_bound.c
> similarity index 100%
> rename from tests/tcg/cris/check_bound.c
> rename to tests/tcg/cris/libc/check_bound.c
> diff --git a/tests/tcg/cris/check_ftag.c b/tests/tcg/cris/libc/check_ftag.c
> similarity index 100%
> rename from tests/tcg/cris/check_ftag.c
> rename to tests/tcg/cris/libc/check_ftag.c
> diff --git a/tests/tcg/cris/check_gcctorture_pr28634-1.c b/tests/tcg/cris/libc/check_gcctorture_pr28634-1.c
> similarity index 100%
> rename from tests/tcg/cris/check_gcctorture_pr28634-1.c
> rename to tests/tcg/cris/libc/check_gcctorture_pr28634-1.c
> diff --git a/tests/tcg/cris/check_gcctorture_pr28634.c b/tests/tcg/cris/libc/check_gcctorture_pr28634.c
> similarity index 100%
> rename from tests/tcg/cris/check_gcctorture_pr28634.c
> rename to tests/tcg/cris/libc/check_gcctorture_pr28634.c
> diff --git a/tests/tcg/cris/check_glibc_kernelversion.c b/tests/tcg/cris/libc/check_glibc_kernelversion.c
> similarity index 100%
> rename from tests/tcg/cris/check_glibc_kernelversion.c
> rename to tests/tcg/cris/libc/check_glibc_kernelversion.c
> diff --git a/tests/tcg/cris/check_hello.c b/tests/tcg/cris/libc/check_hello.c
> similarity index 100%
> rename from tests/tcg/cris/check_hello.c
> rename to tests/tcg/cris/libc/check_hello.c
> diff --git a/tests/tcg/cris/check_int64.c b/tests/tcg/cris/libc/check_int64.c
> similarity index 100%
> rename from tests/tcg/cris/check_int64.c
> rename to tests/tcg/cris/libc/check_int64.c
> diff --git a/tests/tcg/cris/check_lz.c b/tests/tcg/cris/libc/check_lz.c
> similarity index 100%
> rename from tests/tcg/cris/check_lz.c
> rename to tests/tcg/cris/libc/check_lz.c
> diff --git a/tests/tcg/cris/check_mapbrk.c b/tests/tcg/cris/libc/check_mapbrk.c
> similarity index 100%
> rename from tests/tcg/cris/check_mapbrk.c
> rename to tests/tcg/cris/libc/check_mapbrk.c
> diff --git a/tests/tcg/cris/check_mmap1.c b/tests/tcg/cris/libc/check_mmap1.c
> similarity index 100%
> rename from tests/tcg/cris/check_mmap1.c
> rename to tests/tcg/cris/libc/check_mmap1.c
> diff --git a/tests/tcg/cris/check_mmap2.c b/tests/tcg/cris/libc/check_mmap2.c
> similarity index 100%
> rename from tests/tcg/cris/check_mmap2.c
> rename to tests/tcg/cris/libc/check_mmap2.c
> diff --git a/tests/tcg/cris/check_mmap3.c b/tests/tcg/cris/libc/check_mmap3.c
> similarity index 100%
> rename from tests/tcg/cris/check_mmap3.c
> rename to tests/tcg/cris/libc/check_mmap3.c
> diff --git a/tests/tcg/cris/check_moveq.c b/tests/tcg/cris/libc/check_moveq.c
> similarity index 100%
> rename from tests/tcg/cris/check_moveq.c
> rename to tests/tcg/cris/libc/check_moveq.c
> diff --git a/tests/tcg/cris/check_openpf1.c b/tests/tcg/cris/libc/check_openpf1.c
> similarity index 100%
> rename from tests/tcg/cris/check_openpf1.c
> rename to tests/tcg/cris/libc/check_openpf1.c
> diff --git a/tests/tcg/cris/check_openpf2.c b/tests/tcg/cris/libc/check_openpf2.c
> similarity index 100%
> rename from tests/tcg/cris/check_openpf2.c
> rename to tests/tcg/cris/libc/check_openpf2.c
> diff --git a/tests/tcg/cris/check_openpf3.c b/tests/tcg/cris/libc/check_openpf3.c
> similarity index 100%
> rename from tests/tcg/cris/check_openpf3.c
> rename to tests/tcg/cris/libc/check_openpf3.c
> diff --git a/tests/tcg/cris/check_openpf5.c b/tests/tcg/cris/libc/check_openpf5.c
> similarity index 100%
> rename from tests/tcg/cris/check_openpf5.c
> rename to tests/tcg/cris/libc/check_openpf5.c
> diff --git a/tests/tcg/cris/check_settls1.c b/tests/tcg/cris/libc/check_settls1.c
> similarity index 100%
> rename from tests/tcg/cris/check_settls1.c
> rename to tests/tcg/cris/libc/check_settls1.c
> diff --git a/tests/tcg/cris/check_sigalrm.c b/tests/tcg/cris/libc/check_sigalrm.c
> similarity index 100%
> rename from tests/tcg/cris/check_sigalrm.c
> rename to tests/tcg/cris/libc/check_sigalrm.c
> diff --git a/tests/tcg/cris/check_stat1.c b/tests/tcg/cris/libc/check_stat1.c
> similarity index 100%
> rename from tests/tcg/cris/check_stat1.c
> rename to tests/tcg/cris/libc/check_stat1.c
> diff --git a/tests/tcg/cris/check_stat2.c b/tests/tcg/cris/libc/check_stat2.c
> similarity index 100%
> rename from tests/tcg/cris/check_stat2.c
> rename to tests/tcg/cris/libc/check_stat2.c
> diff --git a/tests/tcg/cris/check_stat3.c b/tests/tcg/cris/libc/check_stat3.c
> similarity index 100%
> rename from tests/tcg/cris/check_stat3.c
> rename to tests/tcg/cris/libc/check_stat3.c
> diff --git a/tests/tcg/cris/check_stat4.c b/tests/tcg/cris/libc/check_stat4.c
> similarity index 100%
> rename from tests/tcg/cris/check_stat4.c
> rename to tests/tcg/cris/libc/check_stat4.c
> diff --git a/tests/tcg/cris/check_swap.c b/tests/tcg/cris/libc/check_swap.c
> similarity index 100%
> rename from tests/tcg/cris/check_swap.c
> rename to tests/tcg/cris/libc/check_swap.c
> diff --git a/tests/tcg/cris/check_time2.c b/tests/tcg/cris/libc/check_time2.c
> similarity index 100%
> rename from tests/tcg/cris/check_time2.c
> rename to tests/tcg/cris/libc/check_time2.c
> diff --git a/tests/tcg/cris/crisutils.h b/tests/tcg/cris/libc/crisutils.h
> similarity index 100%
> rename from tests/tcg/cris/crisutils.h
> rename to tests/tcg/cris/libc/crisutils.h
> diff --git a/tests/tcg/cris/libc/sys.c b/tests/tcg/cris/libc/sys.c
> new file mode 100644
> index 0000000000..b8e759eee3
> --- /dev/null
> +++ b/tests/tcg/cris/libc/sys.c
> @@ -0,0 +1,58 @@
> +/*
> + * Minilib helpers functions for system test
> + */
> +
> +

... and you add a copy which doesn't include stdio/stdlib/unistd in
libc/. Don't we want the opposite? Maybe we can avoid duplicate code
having each including ../sys.inc.c.

> +void exit (int status) {
> +	register unsigned int callno asm ("r9") = 1; /* NR_exit */
> +	asm volatile ("break 13\n"
> +		      :
> +		      : "r" (callno)
> +		      : "memory" );
> +	while(1);
> +}
> +
> +ssize_t write (int fd, const void *buf, size_t count) {

The CPP should complain about size_t undefined.

> +	register unsigned int callno asm ("r9") = 4; /* NR_write */
> +	register unsigned int r10 asm ("r10") = fd;
> +	register const void *r11 asm ("r11") = buf;
> +	register size_t r12 asm ("r12") = count;
> +	register unsigned int r asm ("r10");
> +
> +	asm volatile ("break 13\n"
> +	     : "=r" (r)
> +	     : "r" (callno), "0" (r10), "r" (r11), "r" (r12)
> +	     : "memory");
> +
> +	return r;
> +}
> +
> +static inline int mystrlen(char *s) {
> +	int i = 0;
> +	while (s[i])
> +		i++;
> +	return i;
> +}
> +
> +void pass(void) {
> +	char s[] = "passed.\n";
> +	write (1, s, sizeof (s) - 1);
> +	exit (0);
> +}
> +
> +void _fail(char *reason) {
> +	char s[] = "\nfailed: ";
> +	int len = mystrlen(reason);
> +	write (1, s, sizeof (s) - 1);
> +	write (1, reason, len);
> +	write (1, "\n", 1);
> +//	exit (1);
> +}
> +
> +void *memset (void *s, int c, size_t n) {
> +	char *p = s;
> +	int i;
> +	for (i = 0; i < n; i++)
> +		p[i] = c;
> +	return p;
> +}
> diff --git a/tests/tcg/cris/sys.h b/tests/tcg/cris/libc/sys.h
> similarity index 100%
> rename from tests/tcg/cris/sys.h
> rename to tests/tcg/cris/libc/sys.h
> 

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PATCH v2 10/16] tests/tcg: split cris tests into bare and libc directories
  2019-02-28 23:07   ` Philippe Mathieu-Daudé
@ 2019-02-28 23:21     ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 29+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-02-28 23:21 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel; +Cc: edgar.iglesias, qemu-arm, jcmvbkbc

On 3/1/19 12:07 AM, Philippe Mathieu-Daudé wrote:
> Hi Alex,
> 
> On 2/28/19 9:25 PM, Alex Bennée wrote:
>> Bare tests are standalone assembly tests that don't require linking to
>> any libc and hence can be built with kernel only compilers. The libc
>> tests need a compiler capable of building properly linked userspace
>> binaries. As we don't have such a cross compiler at the moment we
>> won't be building those tests.
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>>
>> ---
>> v2
>>   - split between bare/libc instead of system/user
>> ---
>>  tests/tcg/cris/{ => bare}/check_addcv17.s     |  0
>>  tests/tcg/cris/{ => bare}/check_addi.s        |  0
>>  tests/tcg/cris/{ => bare}/check_addiv32.s     |  0
>>  tests/tcg/cris/{ => bare}/check_addm.s        |  0
>>  tests/tcg/cris/{ => bare}/check_addq.s        |  0
>>  tests/tcg/cris/{ => bare}/check_addr.s        |  0
>>  tests/tcg/cris/{ => bare}/check_addxc.s       |  0
>>  tests/tcg/cris/{ => bare}/check_addxm.s       |  0
>>  tests/tcg/cris/{ => bare}/check_addxr.s       |  0
>>  tests/tcg/cris/{ => bare}/check_andc.s        |  0
>>  tests/tcg/cris/{ => bare}/check_andm.s        |  0
>>  tests/tcg/cris/{ => bare}/check_andq.s        |  0
>>  tests/tcg/cris/{ => bare}/check_andr.s        |  0
>>  tests/tcg/cris/{ => bare}/check_asr.s         |  0
>>  tests/tcg/cris/{ => bare}/check_ba.s          |  0
>>  tests/tcg/cris/{ => bare}/check_bas.s         |  0
>>  tests/tcg/cris/{ => bare}/check_bcc.s         |  0
>>  tests/tcg/cris/{ => bare}/check_boundc.s      |  0
>>  tests/tcg/cris/{ => bare}/check_boundr.s      |  0
>>  tests/tcg/cris/{ => bare}/check_btst.s        |  0
>>  tests/tcg/cris/{ => bare}/check_clearfv32.s   |  0
>>  tests/tcg/cris/{ => bare}/check_clrjmp1.s     |  0
>>  tests/tcg/cris/{ => bare}/check_cmp-2.s       |  0
>>  tests/tcg/cris/{ => bare}/check_cmpc.s        |  0
>>  tests/tcg/cris/{ => bare}/check_cmpm.s        |  0
>>  tests/tcg/cris/{ => bare}/check_cmpq.s        |  0
>>  tests/tcg/cris/{ => bare}/check_cmpr.s        |  0
>>  tests/tcg/cris/{ => bare}/check_cmpxc.s       |  0
>>  tests/tcg/cris/{ => bare}/check_cmpxm.s       |  0
>>  tests/tcg/cris/{ => bare}/check_dstep.s       |  0
>>  tests/tcg/cris/{ => bare}/check_jsr.s         |  0
>>  tests/tcg/cris/{ => bare}/check_lapc.s        |  0
>>  tests/tcg/cris/{ => bare}/check_lsl.s         |  0
>>  tests/tcg/cris/{ => bare}/check_lsr.s         |  0
>>  tests/tcg/cris/{ => bare}/check_mcp.s         |  0
>>  tests/tcg/cris/{ => bare}/check_movdelsr1.s   |  0
>>  tests/tcg/cris/{ => bare}/check_movecr.s      |  0
>>  tests/tcg/cris/{ => bare}/check_movei.s       |  0
>>  tests/tcg/cris/{ => bare}/check_movemr.s      |  0
>>  tests/tcg/cris/{ => bare}/check_movemrv32.s   |  0
>>  tests/tcg/cris/{ => bare}/check_mover.s       |  0
>>  tests/tcg/cris/{ => bare}/check_moverm.s      |  0
>>  tests/tcg/cris/{ => bare}/check_movmp.s       |  0
>>  tests/tcg/cris/{ => bare}/check_movpmv32.s    |  0
>>  tests/tcg/cris/{ => bare}/check_movpr.s       |  0
>>  tests/tcg/cris/{ => bare}/check_movprv32.s    |  0
>>  tests/tcg/cris/{ => bare}/check_movscr.s      |  0
>>  tests/tcg/cris/{ => bare}/check_movsm.s       |  0
>>  tests/tcg/cris/{ => bare}/check_movsr.s       |  0
>>  tests/tcg/cris/{ => bare}/check_movucr.s      |  0
>>  tests/tcg/cris/{ => bare}/check_movum.s       |  0
>>  tests/tcg/cris/{ => bare}/check_movur.s       |  0
>>  tests/tcg/cris/{ => bare}/check_mulv32.s      |  0
>>  tests/tcg/cris/{ => bare}/check_mulx.s        |  0
>>  tests/tcg/cris/{ => bare}/check_neg.s         |  0
>>  tests/tcg/cris/{ => bare}/check_not.s         |  0
>>  tests/tcg/cris/{ => bare}/check_orc.s         |  0
>>  tests/tcg/cris/{ => bare}/check_orm.s         |  0
>>  tests/tcg/cris/{ => bare}/check_orq.s         |  0
>>  tests/tcg/cris/{ => bare}/check_orr.s         |  0
>>  tests/tcg/cris/{ => bare}/check_ret.s         |  0
>>  tests/tcg/cris/{ => bare}/check_scc.s         |  0
>>  tests/tcg/cris/{ => bare}/check_subc.s        |  0
>>  tests/tcg/cris/{ => bare}/check_subm.s        |  0
>>  tests/tcg/cris/{ => bare}/check_subq.s        |  0
>>  tests/tcg/cris/{ => bare}/check_subr.s        |  0
>>  tests/tcg/cris/{ => bare}/check_xarith.s      |  0
>>  tests/tcg/cris/{ => bare}/crt.s               |  0
>>  tests/tcg/cris/{ => bare}/sys.c               |  0
> 
> Here you move the current sys.c which includes stdio/stdlib/unistd to
> bare ...
> 
>>  tests/tcg/cris/{ => bare}/testutils.inc       |  0
>>  tests/tcg/cris/{ => libc}/check_abs.c         |  0
>>  tests/tcg/cris/{ => libc}/check_addc.c        |  0
>>  tests/tcg/cris/{ => libc}/check_addcm.c       |  0
>>  tests/tcg/cris/{ => libc}/check_addo.c        |  0
>>  tests/tcg/cris/{ => libc}/check_addoq.c       |  0
>>  tests/tcg/cris/{ => libc}/check_bound.c       |  0
>>  tests/tcg/cris/{ => libc}/check_ftag.c        |  0
>>  .../{ => libc}/check_gcctorture_pr28634-1.c   |  0
>>  .../{ => libc}/check_gcctorture_pr28634.c     |  0
>>  .../{ => libc}/check_glibc_kernelversion.c    |  0
>>  tests/tcg/cris/{ => libc}/check_hello.c       |  0
>>  tests/tcg/cris/{ => libc}/check_int64.c       |  0
>>  tests/tcg/cris/{ => libc}/check_lz.c          |  0
>>  tests/tcg/cris/{ => libc}/check_mapbrk.c      |  0
>>  tests/tcg/cris/{ => libc}/check_mmap1.c       |  0
>>  tests/tcg/cris/{ => libc}/check_mmap2.c       |  0
>>  tests/tcg/cris/{ => libc}/check_mmap3.c       |  0
>>  tests/tcg/cris/{ => libc}/check_moveq.c       |  0
>>  tests/tcg/cris/{ => libc}/check_openpf1.c     |  0
>>  tests/tcg/cris/{ => libc}/check_openpf2.c     |  0
>>  tests/tcg/cris/{ => libc}/check_openpf3.c     |  0
>>  tests/tcg/cris/{ => libc}/check_openpf5.c     |  0
>>  tests/tcg/cris/{ => libc}/check_settls1.c     |  0
>>  tests/tcg/cris/{ => libc}/check_sigalrm.c     |  0
>>  tests/tcg/cris/{ => libc}/check_stat1.c       |  0
>>  tests/tcg/cris/{ => libc}/check_stat2.c       |  0
>>  tests/tcg/cris/{ => libc}/check_stat3.c       |  0
>>  tests/tcg/cris/{ => libc}/check_stat4.c       |  0
>>  tests/tcg/cris/{ => libc}/check_swap.c        |  0
>>  tests/tcg/cris/{ => libc}/check_time2.c       |  0
>>  tests/tcg/cris/{ => libc}/crisutils.h         |  0
>>  tests/tcg/cris/libc/sys.c                     | 58 +++++++++++++++++++
>>  tests/tcg/cris/{ => libc}/sys.h               |  0
>>  103 files changed, 58 insertions(+)
>>  rename tests/tcg/cris/{ => bare}/check_addcv17.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_addi.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_addiv32.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_addm.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_addq.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_addr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_addxc.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_addxm.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_addxr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_andc.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_andm.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_andq.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_andr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_asr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_ba.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_bas.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_bcc.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_boundc.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_boundr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_btst.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_clearfv32.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_clrjmp1.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_cmp-2.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_cmpc.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_cmpm.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_cmpq.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_cmpr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_cmpxc.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_cmpxm.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_dstep.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_jsr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_lapc.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_lsl.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_lsr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_mcp.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_movdelsr1.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_movecr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_movei.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_movemr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_movemrv32.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_mover.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_moverm.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_movmp.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_movpmv32.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_movpr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_movprv32.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_movscr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_movsm.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_movsr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_movucr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_movum.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_movur.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_mulv32.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_mulx.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_neg.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_not.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_orc.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_orm.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_orq.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_orr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_ret.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_scc.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_subc.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_subm.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_subq.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_subr.s (100%)
>>  rename tests/tcg/cris/{ => bare}/check_xarith.s (100%)
>>  rename tests/tcg/cris/{ => bare}/crt.s (100%)
>>  rename tests/tcg/cris/{ => bare}/sys.c (100%)
>>  rename tests/tcg/cris/{ => bare}/testutils.inc (100%)
>>  rename tests/tcg/cris/{ => libc}/check_abs.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_addc.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_addcm.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_addo.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_addoq.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_bound.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_ftag.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_gcctorture_pr28634-1.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_gcctorture_pr28634.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_glibc_kernelversion.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_hello.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_int64.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_lz.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_mapbrk.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_mmap1.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_mmap2.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_mmap3.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_moveq.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_openpf1.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_openpf2.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_openpf3.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_openpf5.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_settls1.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_sigalrm.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_stat1.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_stat2.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_stat3.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_stat4.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_swap.c (100%)
>>  rename tests/tcg/cris/{ => libc}/check_time2.c (100%)
>>  rename tests/tcg/cris/{ => libc}/crisutils.h (100%)
>>  create mode 100644 tests/tcg/cris/libc/sys.c
>>  rename tests/tcg/cris/{ => libc}/sys.h (100%)
>>
>> diff --git a/tests/tcg/cris/check_addcv17.s b/tests/tcg/cris/bare/check_addcv17.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_addcv17.s
>> rename to tests/tcg/cris/bare/check_addcv17.s
>> diff --git a/tests/tcg/cris/check_addi.s b/tests/tcg/cris/bare/check_addi.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_addi.s
>> rename to tests/tcg/cris/bare/check_addi.s
>> diff --git a/tests/tcg/cris/check_addiv32.s b/tests/tcg/cris/bare/check_addiv32.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_addiv32.s
>> rename to tests/tcg/cris/bare/check_addiv32.s
>> diff --git a/tests/tcg/cris/check_addm.s b/tests/tcg/cris/bare/check_addm.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_addm.s
>> rename to tests/tcg/cris/bare/check_addm.s
>> diff --git a/tests/tcg/cris/check_addq.s b/tests/tcg/cris/bare/check_addq.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_addq.s
>> rename to tests/tcg/cris/bare/check_addq.s
>> diff --git a/tests/tcg/cris/check_addr.s b/tests/tcg/cris/bare/check_addr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_addr.s
>> rename to tests/tcg/cris/bare/check_addr.s
>> diff --git a/tests/tcg/cris/check_addxc.s b/tests/tcg/cris/bare/check_addxc.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_addxc.s
>> rename to tests/tcg/cris/bare/check_addxc.s
>> diff --git a/tests/tcg/cris/check_addxm.s b/tests/tcg/cris/bare/check_addxm.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_addxm.s
>> rename to tests/tcg/cris/bare/check_addxm.s
>> diff --git a/tests/tcg/cris/check_addxr.s b/tests/tcg/cris/bare/check_addxr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_addxr.s
>> rename to tests/tcg/cris/bare/check_addxr.s
>> diff --git a/tests/tcg/cris/check_andc.s b/tests/tcg/cris/bare/check_andc.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_andc.s
>> rename to tests/tcg/cris/bare/check_andc.s
>> diff --git a/tests/tcg/cris/check_andm.s b/tests/tcg/cris/bare/check_andm.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_andm.s
>> rename to tests/tcg/cris/bare/check_andm.s
>> diff --git a/tests/tcg/cris/check_andq.s b/tests/tcg/cris/bare/check_andq.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_andq.s
>> rename to tests/tcg/cris/bare/check_andq.s
>> diff --git a/tests/tcg/cris/check_andr.s b/tests/tcg/cris/bare/check_andr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_andr.s
>> rename to tests/tcg/cris/bare/check_andr.s
>> diff --git a/tests/tcg/cris/check_asr.s b/tests/tcg/cris/bare/check_asr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_asr.s
>> rename to tests/tcg/cris/bare/check_asr.s
>> diff --git a/tests/tcg/cris/check_ba.s b/tests/tcg/cris/bare/check_ba.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_ba.s
>> rename to tests/tcg/cris/bare/check_ba.s
>> diff --git a/tests/tcg/cris/check_bas.s b/tests/tcg/cris/bare/check_bas.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_bas.s
>> rename to tests/tcg/cris/bare/check_bas.s
>> diff --git a/tests/tcg/cris/check_bcc.s b/tests/tcg/cris/bare/check_bcc.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_bcc.s
>> rename to tests/tcg/cris/bare/check_bcc.s
>> diff --git a/tests/tcg/cris/check_boundc.s b/tests/tcg/cris/bare/check_boundc.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_boundc.s
>> rename to tests/tcg/cris/bare/check_boundc.s
>> diff --git a/tests/tcg/cris/check_boundr.s b/tests/tcg/cris/bare/check_boundr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_boundr.s
>> rename to tests/tcg/cris/bare/check_boundr.s
>> diff --git a/tests/tcg/cris/check_btst.s b/tests/tcg/cris/bare/check_btst.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_btst.s
>> rename to tests/tcg/cris/bare/check_btst.s
>> diff --git a/tests/tcg/cris/check_clearfv32.s b/tests/tcg/cris/bare/check_clearfv32.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_clearfv32.s
>> rename to tests/tcg/cris/bare/check_clearfv32.s
>> diff --git a/tests/tcg/cris/check_clrjmp1.s b/tests/tcg/cris/bare/check_clrjmp1.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_clrjmp1.s
>> rename to tests/tcg/cris/bare/check_clrjmp1.s
>> diff --git a/tests/tcg/cris/check_cmp-2.s b/tests/tcg/cris/bare/check_cmp-2.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_cmp-2.s
>> rename to tests/tcg/cris/bare/check_cmp-2.s
>> diff --git a/tests/tcg/cris/check_cmpc.s b/tests/tcg/cris/bare/check_cmpc.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_cmpc.s
>> rename to tests/tcg/cris/bare/check_cmpc.s
>> diff --git a/tests/tcg/cris/check_cmpm.s b/tests/tcg/cris/bare/check_cmpm.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_cmpm.s
>> rename to tests/tcg/cris/bare/check_cmpm.s
>> diff --git a/tests/tcg/cris/check_cmpq.s b/tests/tcg/cris/bare/check_cmpq.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_cmpq.s
>> rename to tests/tcg/cris/bare/check_cmpq.s
>> diff --git a/tests/tcg/cris/check_cmpr.s b/tests/tcg/cris/bare/check_cmpr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_cmpr.s
>> rename to tests/tcg/cris/bare/check_cmpr.s
>> diff --git a/tests/tcg/cris/check_cmpxc.s b/tests/tcg/cris/bare/check_cmpxc.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_cmpxc.s
>> rename to tests/tcg/cris/bare/check_cmpxc.s
>> diff --git a/tests/tcg/cris/check_cmpxm.s b/tests/tcg/cris/bare/check_cmpxm.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_cmpxm.s
>> rename to tests/tcg/cris/bare/check_cmpxm.s
>> diff --git a/tests/tcg/cris/check_dstep.s b/tests/tcg/cris/bare/check_dstep.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_dstep.s
>> rename to tests/tcg/cris/bare/check_dstep.s
>> diff --git a/tests/tcg/cris/check_jsr.s b/tests/tcg/cris/bare/check_jsr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_jsr.s
>> rename to tests/tcg/cris/bare/check_jsr.s
>> diff --git a/tests/tcg/cris/check_lapc.s b/tests/tcg/cris/bare/check_lapc.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_lapc.s
>> rename to tests/tcg/cris/bare/check_lapc.s
>> diff --git a/tests/tcg/cris/check_lsl.s b/tests/tcg/cris/bare/check_lsl.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_lsl.s
>> rename to tests/tcg/cris/bare/check_lsl.s
>> diff --git a/tests/tcg/cris/check_lsr.s b/tests/tcg/cris/bare/check_lsr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_lsr.s
>> rename to tests/tcg/cris/bare/check_lsr.s
>> diff --git a/tests/tcg/cris/check_mcp.s b/tests/tcg/cris/bare/check_mcp.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_mcp.s
>> rename to tests/tcg/cris/bare/check_mcp.s
>> diff --git a/tests/tcg/cris/check_movdelsr1.s b/tests/tcg/cris/bare/check_movdelsr1.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_movdelsr1.s
>> rename to tests/tcg/cris/bare/check_movdelsr1.s
>> diff --git a/tests/tcg/cris/check_movecr.s b/tests/tcg/cris/bare/check_movecr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_movecr.s
>> rename to tests/tcg/cris/bare/check_movecr.s
>> diff --git a/tests/tcg/cris/check_movei.s b/tests/tcg/cris/bare/check_movei.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_movei.s
>> rename to tests/tcg/cris/bare/check_movei.s
>> diff --git a/tests/tcg/cris/check_movemr.s b/tests/tcg/cris/bare/check_movemr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_movemr.s
>> rename to tests/tcg/cris/bare/check_movemr.s
>> diff --git a/tests/tcg/cris/check_movemrv32.s b/tests/tcg/cris/bare/check_movemrv32.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_movemrv32.s
>> rename to tests/tcg/cris/bare/check_movemrv32.s
>> diff --git a/tests/tcg/cris/check_mover.s b/tests/tcg/cris/bare/check_mover.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_mover.s
>> rename to tests/tcg/cris/bare/check_mover.s
>> diff --git a/tests/tcg/cris/check_moverm.s b/tests/tcg/cris/bare/check_moverm.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_moverm.s
>> rename to tests/tcg/cris/bare/check_moverm.s
>> diff --git a/tests/tcg/cris/check_movmp.s b/tests/tcg/cris/bare/check_movmp.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_movmp.s
>> rename to tests/tcg/cris/bare/check_movmp.s
>> diff --git a/tests/tcg/cris/check_movpmv32.s b/tests/tcg/cris/bare/check_movpmv32.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_movpmv32.s
>> rename to tests/tcg/cris/bare/check_movpmv32.s
>> diff --git a/tests/tcg/cris/check_movpr.s b/tests/tcg/cris/bare/check_movpr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_movpr.s
>> rename to tests/tcg/cris/bare/check_movpr.s
>> diff --git a/tests/tcg/cris/check_movprv32.s b/tests/tcg/cris/bare/check_movprv32.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_movprv32.s
>> rename to tests/tcg/cris/bare/check_movprv32.s
>> diff --git a/tests/tcg/cris/check_movscr.s b/tests/tcg/cris/bare/check_movscr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_movscr.s
>> rename to tests/tcg/cris/bare/check_movscr.s
>> diff --git a/tests/tcg/cris/check_movsm.s b/tests/tcg/cris/bare/check_movsm.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_movsm.s
>> rename to tests/tcg/cris/bare/check_movsm.s
>> diff --git a/tests/tcg/cris/check_movsr.s b/tests/tcg/cris/bare/check_movsr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_movsr.s
>> rename to tests/tcg/cris/bare/check_movsr.s
>> diff --git a/tests/tcg/cris/check_movucr.s b/tests/tcg/cris/bare/check_movucr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_movucr.s
>> rename to tests/tcg/cris/bare/check_movucr.s
>> diff --git a/tests/tcg/cris/check_movum.s b/tests/tcg/cris/bare/check_movum.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_movum.s
>> rename to tests/tcg/cris/bare/check_movum.s
>> diff --git a/tests/tcg/cris/check_movur.s b/tests/tcg/cris/bare/check_movur.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_movur.s
>> rename to tests/tcg/cris/bare/check_movur.s
>> diff --git a/tests/tcg/cris/check_mulv32.s b/tests/tcg/cris/bare/check_mulv32.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_mulv32.s
>> rename to tests/tcg/cris/bare/check_mulv32.s
>> diff --git a/tests/tcg/cris/check_mulx.s b/tests/tcg/cris/bare/check_mulx.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_mulx.s
>> rename to tests/tcg/cris/bare/check_mulx.s
>> diff --git a/tests/tcg/cris/check_neg.s b/tests/tcg/cris/bare/check_neg.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_neg.s
>> rename to tests/tcg/cris/bare/check_neg.s
>> diff --git a/tests/tcg/cris/check_not.s b/tests/tcg/cris/bare/check_not.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_not.s
>> rename to tests/tcg/cris/bare/check_not.s
>> diff --git a/tests/tcg/cris/check_orc.s b/tests/tcg/cris/bare/check_orc.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_orc.s
>> rename to tests/tcg/cris/bare/check_orc.s
>> diff --git a/tests/tcg/cris/check_orm.s b/tests/tcg/cris/bare/check_orm.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_orm.s
>> rename to tests/tcg/cris/bare/check_orm.s
>> diff --git a/tests/tcg/cris/check_orq.s b/tests/tcg/cris/bare/check_orq.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_orq.s
>> rename to tests/tcg/cris/bare/check_orq.s
>> diff --git a/tests/tcg/cris/check_orr.s b/tests/tcg/cris/bare/check_orr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_orr.s
>> rename to tests/tcg/cris/bare/check_orr.s
>> diff --git a/tests/tcg/cris/check_ret.s b/tests/tcg/cris/bare/check_ret.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_ret.s
>> rename to tests/tcg/cris/bare/check_ret.s
>> diff --git a/tests/tcg/cris/check_scc.s b/tests/tcg/cris/bare/check_scc.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_scc.s
>> rename to tests/tcg/cris/bare/check_scc.s
>> diff --git a/tests/tcg/cris/check_subc.s b/tests/tcg/cris/bare/check_subc.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_subc.s
>> rename to tests/tcg/cris/bare/check_subc.s
>> diff --git a/tests/tcg/cris/check_subm.s b/tests/tcg/cris/bare/check_subm.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_subm.s
>> rename to tests/tcg/cris/bare/check_subm.s
>> diff --git a/tests/tcg/cris/check_subq.s b/tests/tcg/cris/bare/check_subq.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_subq.s
>> rename to tests/tcg/cris/bare/check_subq.s
>> diff --git a/tests/tcg/cris/check_subr.s b/tests/tcg/cris/bare/check_subr.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_subr.s
>> rename to tests/tcg/cris/bare/check_subr.s
>> diff --git a/tests/tcg/cris/check_xarith.s b/tests/tcg/cris/bare/check_xarith.s
>> similarity index 100%
>> rename from tests/tcg/cris/check_xarith.s
>> rename to tests/tcg/cris/bare/check_xarith.s
>> diff --git a/tests/tcg/cris/crt.s b/tests/tcg/cris/bare/crt.s
>> similarity index 100%
>> rename from tests/tcg/cris/crt.s
>> rename to tests/tcg/cris/bare/crt.s
>> diff --git a/tests/tcg/cris/sys.c b/tests/tcg/cris/bare/sys.c
>> similarity index 100%
>> rename from tests/tcg/cris/sys.c
>> rename to tests/tcg/cris/bare/sys.c
>> diff --git a/tests/tcg/cris/testutils.inc b/tests/tcg/cris/bare/testutils.inc
>> similarity index 100%
>> rename from tests/tcg/cris/testutils.inc
>> rename to tests/tcg/cris/bare/testutils.inc
>> diff --git a/tests/tcg/cris/check_abs.c b/tests/tcg/cris/libc/check_abs.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_abs.c
>> rename to tests/tcg/cris/libc/check_abs.c
>> diff --git a/tests/tcg/cris/check_addc.c b/tests/tcg/cris/libc/check_addc.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_addc.c
>> rename to tests/tcg/cris/libc/check_addc.c
>> diff --git a/tests/tcg/cris/check_addcm.c b/tests/tcg/cris/libc/check_addcm.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_addcm.c
>> rename to tests/tcg/cris/libc/check_addcm.c
>> diff --git a/tests/tcg/cris/check_addo.c b/tests/tcg/cris/libc/check_addo.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_addo.c
>> rename to tests/tcg/cris/libc/check_addo.c
>> diff --git a/tests/tcg/cris/check_addoq.c b/tests/tcg/cris/libc/check_addoq.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_addoq.c
>> rename to tests/tcg/cris/libc/check_addoq.c
>> diff --git a/tests/tcg/cris/check_bound.c b/tests/tcg/cris/libc/check_bound.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_bound.c
>> rename to tests/tcg/cris/libc/check_bound.c
>> diff --git a/tests/tcg/cris/check_ftag.c b/tests/tcg/cris/libc/check_ftag.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_ftag.c
>> rename to tests/tcg/cris/libc/check_ftag.c
>> diff --git a/tests/tcg/cris/check_gcctorture_pr28634-1.c b/tests/tcg/cris/libc/check_gcctorture_pr28634-1.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_gcctorture_pr28634-1.c
>> rename to tests/tcg/cris/libc/check_gcctorture_pr28634-1.c
>> diff --git a/tests/tcg/cris/check_gcctorture_pr28634.c b/tests/tcg/cris/libc/check_gcctorture_pr28634.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_gcctorture_pr28634.c
>> rename to tests/tcg/cris/libc/check_gcctorture_pr28634.c
>> diff --git a/tests/tcg/cris/check_glibc_kernelversion.c b/tests/tcg/cris/libc/check_glibc_kernelversion.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_glibc_kernelversion.c
>> rename to tests/tcg/cris/libc/check_glibc_kernelversion.c
>> diff --git a/tests/tcg/cris/check_hello.c b/tests/tcg/cris/libc/check_hello.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_hello.c
>> rename to tests/tcg/cris/libc/check_hello.c
>> diff --git a/tests/tcg/cris/check_int64.c b/tests/tcg/cris/libc/check_int64.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_int64.c
>> rename to tests/tcg/cris/libc/check_int64.c
>> diff --git a/tests/tcg/cris/check_lz.c b/tests/tcg/cris/libc/check_lz.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_lz.c
>> rename to tests/tcg/cris/libc/check_lz.c
>> diff --git a/tests/tcg/cris/check_mapbrk.c b/tests/tcg/cris/libc/check_mapbrk.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_mapbrk.c
>> rename to tests/tcg/cris/libc/check_mapbrk.c
>> diff --git a/tests/tcg/cris/check_mmap1.c b/tests/tcg/cris/libc/check_mmap1.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_mmap1.c
>> rename to tests/tcg/cris/libc/check_mmap1.c
>> diff --git a/tests/tcg/cris/check_mmap2.c b/tests/tcg/cris/libc/check_mmap2.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_mmap2.c
>> rename to tests/tcg/cris/libc/check_mmap2.c
>> diff --git a/tests/tcg/cris/check_mmap3.c b/tests/tcg/cris/libc/check_mmap3.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_mmap3.c
>> rename to tests/tcg/cris/libc/check_mmap3.c
>> diff --git a/tests/tcg/cris/check_moveq.c b/tests/tcg/cris/libc/check_moveq.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_moveq.c
>> rename to tests/tcg/cris/libc/check_moveq.c
>> diff --git a/tests/tcg/cris/check_openpf1.c b/tests/tcg/cris/libc/check_openpf1.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_openpf1.c
>> rename to tests/tcg/cris/libc/check_openpf1.c
>> diff --git a/tests/tcg/cris/check_openpf2.c b/tests/tcg/cris/libc/check_openpf2.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_openpf2.c
>> rename to tests/tcg/cris/libc/check_openpf2.c
>> diff --git a/tests/tcg/cris/check_openpf3.c b/tests/tcg/cris/libc/check_openpf3.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_openpf3.c
>> rename to tests/tcg/cris/libc/check_openpf3.c
>> diff --git a/tests/tcg/cris/check_openpf5.c b/tests/tcg/cris/libc/check_openpf5.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_openpf5.c
>> rename to tests/tcg/cris/libc/check_openpf5.c
>> diff --git a/tests/tcg/cris/check_settls1.c b/tests/tcg/cris/libc/check_settls1.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_settls1.c
>> rename to tests/tcg/cris/libc/check_settls1.c
>> diff --git a/tests/tcg/cris/check_sigalrm.c b/tests/tcg/cris/libc/check_sigalrm.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_sigalrm.c
>> rename to tests/tcg/cris/libc/check_sigalrm.c
>> diff --git a/tests/tcg/cris/check_stat1.c b/tests/tcg/cris/libc/check_stat1.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_stat1.c
>> rename to tests/tcg/cris/libc/check_stat1.c
>> diff --git a/tests/tcg/cris/check_stat2.c b/tests/tcg/cris/libc/check_stat2.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_stat2.c
>> rename to tests/tcg/cris/libc/check_stat2.c
>> diff --git a/tests/tcg/cris/check_stat3.c b/tests/tcg/cris/libc/check_stat3.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_stat3.c
>> rename to tests/tcg/cris/libc/check_stat3.c
>> diff --git a/tests/tcg/cris/check_stat4.c b/tests/tcg/cris/libc/check_stat4.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_stat4.c
>> rename to tests/tcg/cris/libc/check_stat4.c
>> diff --git a/tests/tcg/cris/check_swap.c b/tests/tcg/cris/libc/check_swap.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_swap.c
>> rename to tests/tcg/cris/libc/check_swap.c
>> diff --git a/tests/tcg/cris/check_time2.c b/tests/tcg/cris/libc/check_time2.c
>> similarity index 100%
>> rename from tests/tcg/cris/check_time2.c
>> rename to tests/tcg/cris/libc/check_time2.c
>> diff --git a/tests/tcg/cris/crisutils.h b/tests/tcg/cris/libc/crisutils.h
>> similarity index 100%
>> rename from tests/tcg/cris/crisutils.h
>> rename to tests/tcg/cris/libc/crisutils.h
>> diff --git a/tests/tcg/cris/libc/sys.c b/tests/tcg/cris/libc/sys.c
>> new file mode 100644
>> index 0000000000..b8e759eee3
>> --- /dev/null
>> +++ b/tests/tcg/cris/libc/sys.c
>> @@ -0,0 +1,58 @@
>> +/*
>> + * Minilib helpers functions for system test
>> + */
>> +
>> +
> 
> ... and you add a copy which doesn't include stdio/stdlib/unistd in
> libc/. Don't we want the opposite? Maybe we can avoid duplicate code
> having each including ../sys.inc.c.

Now I see your next patch...

Is it possible to invert them, first clean sys.c up, then move the files?

> 
>> +void exit (int status) {
>> +	register unsigned int callno asm ("r9") = 1; /* NR_exit */
>> +	asm volatile ("break 13\n"
>> +		      :
>> +		      : "r" (callno)
>> +		      : "memory" );
>> +	while(1);
>> +}
>> +
>> +ssize_t write (int fd, const void *buf, size_t count) {
> 
> The CPP should complain about size_t undefined.

You #include <stddef.h> in the text patch :)

> 
>> +	register unsigned int callno asm ("r9") = 4; /* NR_write */
>> +	register unsigned int r10 asm ("r10") = fd;
>> +	register const void *r11 asm ("r11") = buf;
>> +	register size_t r12 asm ("r12") = count;
>> +	register unsigned int r asm ("r10");
>> +
>> +	asm volatile ("break 13\n"
>> +	     : "=r" (r)
>> +	     : "r" (callno), "0" (r10), "r" (r11), "r" (r12)
>> +	     : "memory");
>> +
>> +	return r;
>> +}
>> +
>> +static inline int mystrlen(char *s) {
>> +	int i = 0;
>> +	while (s[i])
>> +		i++;
>> +	return i;
>> +}
>> +
>> +void pass(void) {
>> +	char s[] = "passed.\n";
>> +	write (1, s, sizeof (s) - 1);
>> +	exit (0);
>> +}
>> +
>> +void _fail(char *reason) {
>> +	char s[] = "\nfailed: ";
>> +	int len = mystrlen(reason);
>> +	write (1, s, sizeof (s) - 1);
>> +	write (1, reason, len);
>> +	write (1, "\n", 1);
>> +//	exit (1);
>> +}
>> +
>> +void *memset (void *s, int c, size_t n) {
>> +	char *p = s;
>> +	int i;
>> +	for (i = 0; i < n; i++)
>> +		p[i] = c;
>> +	return p;
>> +}
>> diff --git a/tests/tcg/cris/sys.h b/tests/tcg/cris/libc/sys.h
>> similarity index 100%
>> rename from tests/tcg/cris/sys.h
>> rename to tests/tcg/cris/libc/sys.h
>>

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PATCH v2 07/16] tests/tcg/xtensa: enable system tests
  2019-02-28 22:54   ` Philippe Mathieu-Daudé
@ 2019-02-28 23:24     ` Max Filippov
  2019-02-28 23:28       ` Philippe Mathieu-Daudé
  0 siblings, 1 reply; 29+ messages in thread
From: Max Filippov @ 2019-02-28 23:24 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Alex Bennée, qemu-devel, Edgar E. Iglesias, qemu-arm

On Thu, Feb 28, 2019 at 2:54 PM Philippe Mathieu-Daudé
<philmd@redhat.com> wrote:
> Max: I think it should be quite easy to port your simulator to Alex's
> new Makefile.

I agree.

> BTW is this simulator downloadable? I see the Zephyr project also uses
> it, and I looked for it on https://ip.cadence.com/swdev but couldnt find
> a (public) link.

There's a site https://www.tensilicatools.com/
with tools for various end-user-programmable xtensa cores,
but I'm pretty sure that neither dc232b nor dc233c are available
there.

-- 
Thanks.
-- Max

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PATCH v2 07/16] tests/tcg/xtensa: enable system tests
  2019-02-28 23:24     ` Max Filippov
@ 2019-02-28 23:28       ` Philippe Mathieu-Daudé
  0 siblings, 0 replies; 29+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-02-28 23:28 UTC (permalink / raw)
  To: Max Filippov; +Cc: Alex Bennée, qemu-devel, Edgar E. Iglesias, qemu-arm

On 3/1/19 12:24 AM, Max Filippov wrote:
> On Thu, Feb 28, 2019 at 2:54 PM Philippe Mathieu-Daudé
> <philmd@redhat.com> wrote:
> 
>> BTW is this simulator downloadable? I see the Zephyr project also uses
>> it, and I looked for it on https://ip.cadence.com/swdev but couldnt find
>> a (public) link.
> 
> There's a site https://www.tensilicatools.com/
> with tools for various end-user-programmable xtensa cores,
> but I'm pretty sure that neither dc232b nor dc233c are available
> there.

Thanks!

Phil.

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PATCH v2 07/16] tests/tcg/xtensa: enable system tests
  2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 07/16] tests/tcg/xtensa: enable system tests Alex Bennée
  2019-02-28 22:54   ` Philippe Mathieu-Daudé
@ 2019-02-28 23:29   ` Max Filippov
  2019-03-01  7:30     ` Alex Bennée
  1 sibling, 1 reply; 29+ messages in thread
From: Max Filippov @ 2019-02-28 23:29 UTC (permalink / raw)
  To: Alex Bennée; +Cc: qemu-devel, qemu-arm, Edgar E. Iglesias

Hi Alex,

On Thu, Feb 28, 2019 at 12:25 PM Alex Bennée <alex.bennee@linaro.org> wrote:

[...]

> diff --git a/tests/tcg/xtensa/Makefile.softmmu-target b/tests/tcg/xtensa/Makefile.softmmu-target
> new file mode 100644
> index 0000000000..1a4014506f
> --- /dev/null
> +++ b/tests/tcg/xtensa/Makefile.softmmu-target
> @@ -0,0 +1,40 @@
> +#
> +# Xtensa softmmu tests
> +#
> +
> +ifneq ($(TARGET_WORDS_BIGENDIAN),y)

I've recently posted a series that makes it possible to run
TCG tests on wider variety of xtensa cores, including
big-endian cores:
http://lists.nongnu.org/archive/html/qemu-devel/2019-02/msg04843.html

-- 
Thanks.
-- Max

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PATCH v2 07/16] tests/tcg/xtensa: enable system tests
  2019-02-28 23:29   ` Max Filippov
@ 2019-03-01  7:30     ` Alex Bennée
  0 siblings, 0 replies; 29+ messages in thread
From: Alex Bennée @ 2019-03-01  7:30 UTC (permalink / raw)
  To: Max Filippov; +Cc: qemu-devel, qemu-arm, Edgar E. Iglesias


Max Filippov <jcmvbkbc@gmail.com> writes:

> Hi Alex,
>
> On Thu, Feb 28, 2019 at 12:25 PM Alex Bennée <alex.bennee@linaro.org> wrote:
>
> [...]
>
>> diff --git a/tests/tcg/xtensa/Makefile.softmmu-target b/tests/tcg/xtensa/Makefile.softmmu-target
>> new file mode 100644
>> index 0000000000..1a4014506f
>> --- /dev/null
>> +++ b/tests/tcg/xtensa/Makefile.softmmu-target
>> @@ -0,0 +1,40 @@
>> +#
>> +# Xtensa softmmu tests
>> +#
>> +
>> +ifneq ($(TARGET_WORDS_BIGENDIAN),y)
>
> I've recently posted a series that makes it possible to run
> TCG tests on wider variety of xtensa cores, including
> big-endian cores:
> http://lists.nongnu.org/archive/html/qemu-devel/2019-02/msg04843.html

Ahh I missed that, will have a look.

--
Alex Bennée

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PATCH v2 08/16] tests/tcg/arm: add ARMv6-M UNDEFINED 32-bit instruction test
  2019-02-28 22:56   ` Philippe Mathieu-Daudé
@ 2019-03-01  7:32     ` Alex Bennée
  0 siblings, 0 replies; 29+ messages in thread
From: Alex Bennée @ 2019-03-01  7:32 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: qemu-devel, edgar.iglesias, qemu-arm, Stefan Hajnoczi, jcmvbkbc


Philippe Mathieu-Daudé <philmd@redhat.com> writes:

> On 2/28/19 9:25 PM, Alex Bennée wrote:
>> From: Stefan Hajnoczi <stefanha@redhat.com>
>>
>> Test that 32-bit instructions declared UNDEFINED in the ARMv6-M
>> Reference Manual really do raise an exception.  Also test that the 6
>> 32-bit instructions defined in the ARMv6-M Reference Manual do not raise
>> an exception.
>>
>> Based-on: <20181029194519.15628-1-stefanha@redhat.com>
>
> ^ cut 'Based-on' from git history?

Yeah - we really only need the Message ID.

>
>> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
>> Message-Id: <20181129185113.30353-1-stefanha@redhat.com>
>> [AJB: integrated into system tests]
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>>
>> ---
>> v2
>>   - added to series
>>   - used softmmu-target Makefile with single compile/link step
>>   - launches with -kernel
>>   - drop .hex file
>> ---
>>  tests/tcg/arm/Makefile.softmmu-target |  29 +++++
>>  tests/tcg/arm/test-armv6m-undef.S     | 154 ++++++++++++++++++++++++++
>>  tests/tcg/arm/test-armv6m-undef.ld    |  21 ++++
>>  3 files changed, 204 insertions(+)
>>  create mode 100644 tests/tcg/arm/Makefile.softmmu-target
>>  create mode 100644 tests/tcg/arm/test-armv6m-undef.S
>>  create mode 100644 tests/tcg/arm/test-armv6m-undef.ld
>>
>> diff --git a/tests/tcg/arm/Makefile.softmmu-target b/tests/tcg/arm/Makefile.softmmu-target
>> new file mode 100644
>> index 0000000000..49d48d8a1c
>> --- /dev/null
>> +++ b/tests/tcg/arm/Makefile.softmmu-target
>> @@ -0,0 +1,29 @@
>> +# -*- Mode: makefile -*-
>> +#
>> +# ARM SoftMMU tests - included from tests/tcg/Makefile
>> +#
>> +
>> +ifeq ($(TARGET_ABI_DIR),arm)
>> +
>> +ARM_SRC=$(SRC_PATH)/tests/tcg/arm
>> +
>> +# Set search path for all sources
>> +VPATH 		+= $(ARM_SRC)
>> +
>> +ARM_TESTS=test-armv6m-undef
>> +
>> +TESTS += $(ARM_TESTS)
>> +
>> +CFLAGS+=-Wl,--build-id=none -x assembler-with-cpp
>> +LDFLAGS+=-nostdlib -N -static
>> +
>> +%: %.S %.ld
>> +	$(CC) $(CFLAGS) $(ASFLAGS) $< -o $@ $(LDFLAGS) -T $(ARM_SRC)/$@.ld
>> +
>> +# Specific Test Rules
>> +
>> +test-armv6m-undef: EXTRA_CFLAGS+=-mcpu=cortex-m0
>> +
>> +run-test-armv6m-undef: QEMU_OPTS+=-semihosting -M microbit -kernel
>> +
>> +endif
>> diff --git a/tests/tcg/arm/test-armv6m-undef.S b/tests/tcg/arm/test-armv6m-undef.S
>> new file mode 100644
>> index 0000000000..d18ca56b4a
>> --- /dev/null
>> +++ b/tests/tcg/arm/test-armv6m-undef.S
>> @@ -0,0 +1,154 @@
>> +/*
>> + * Test ARMv6-M UNDEFINED 32-bit instructions
>> + *
>> + * Copyright 2018 Red Hat Inc.
>> + *
>> + * This work is licensed under the terms of the GNU GPL, version 2
>> + * or later. See the COPYING file in the top-level directory.
>> + */
>> +
>> +/*
>> + * Test that UNDEFINED 32-bit instructions fault as expected.  This is an
>> + * interesting test because ARMv6-M shares code with its more fully-featured
>> + * siblings and it's necessary to verify that its limited instruction set is
>> + * emulated correctly.
>> + *
>> + * The emulator must be invoked with -semihosting so that the test case can
>> + * terminate with exit code 0 on success or 1 on failure.
>> + *
>> + * Failures can be debugged with -d in_asm,int,exec,cpu and the
>> + * gdbstub (-S -s).
>> + */
>> +
>> +.syntax unified
>> +.cpu cortex-m0
>> +.thumb
>> +
>> +/*
>> + * Memory map
>> + */
>> +#define SRAM_BASE 0x20000000
>> +#define SRAM_SIZE (16 * 1024)
>> +
>> +/*
>> + * Semihosting interface on ARM T32
>> + * See "Semihosting for AArch32 and AArch64 Version 2.0 Documentation" by ARM
>> + */
>> +#define semihosting_call bkpt 0xab
>> +#define SYS_EXIT 0x18
>> +
>> +vector_table:
>> +    .word SRAM_BASE + SRAM_SIZE /* 0. SP_main */
>> +    .word exc_reset_thumb       /* 1. Reset */
>> +    .word 0                     /* 2. NMI */
>> +    .word exc_hard_fault_thumb  /* 3. HardFault */
>> +    .rept 7
>> +    .word 0                     /* 4-10. Reserved */
>> +    .endr
>> +    .word 0                     /* 11. SVCall */
>> +    .word 0                     /* 12. Reserved */
>> +    .word 0                     /* 13. Reserved */
>> +    .word 0                     /* 14. PendSV */
>> +    .word 0                     /* 15. SysTick */
>> +    .rept 32
>> +    .word 0                     /* 16-47. External Interrupts */
>> +    .endr
>> +
>> +exc_reset:
>> +.equ exc_reset_thumb, exc_reset + 1
>> +.global exc_reset_thumb
>> +    /* The following 32-bit UNDEFINED instructions are tested by executing
>> +     * them.  The HardFault exception handler should execute and return to
>> +     * the next test case.  If no exception is raised the test fails.
>> +     */
>> +
>> +    /* Table A5-9 32-bit Thumb encoding */
>> +    .short 0b1110100000000000
>> +    .short 0b0000000000000000
>> +    b not_reached
>> +    .short 0b1110100000000000
>> +    .short 0b1000000000000000
>> +    b not_reached
>> +    .short 0b1111100000000000
>> +    .short 0b0000000000000000
>> +    b not_reached
>> +    .short 0b1111100000000000
>> +    .short 0b1000000000000000
>> +    b not_reached
>> +    .short 0b1111000000000000
>> +    .short 0b0000000000000000
>> +    b not_reached
>> +
>> +    /* Table A5-10 Branch and miscellaneous control instructions */
>> +    .short 0b1111011111110000
>> +    .short 0b1010000000000000
>> +    b not_reached
>> +
>> +    /* The following are valid 32-bit instructions that must not raise a
>> +     * HardFault.
>> +     */
>> +
>> +    /* B4.2.3 Move to Special Register (moves to IPSR are ignored) */
>> +    msr ipsr, r0
>> +    b 1f
>> +    b not_reached
>> +1:
>> +    /* B4.2.2 Move from Special Register */
>> +    mrs r0, ipsr
>> +    b 1f
>> +    b not_reached
>> +1:
>> +    /* A6.7.13 Branch with Link (immediate) */
>> +    bl 1f
>> +1:
>> +    b 1f
>> +    b not_reached
>> +1:
>> +    /* A6.7.21 Data Memory Barrier */
>> +    dmb
>> +    b 1f
>> +    b not_reached
>> +1:
>> +    /* A6.7.22 Data Synchronization Barrier */
>> +    dsb
>> +    b 1f
>> +    b not_reached
>> +1:
>> +    /* A6.7.24 Instruction Memory Barrier */
>> +    isb
>> +    b 1f
>> +    b not_reached
>> +1:
>> +
>> +    /* Success! */
>> +    movs r0, 1
>> +    b exit
>> +
>> +not_reached: /* Failure :( */
>> +    movs r0, 0
>> +    b exit
>> +
>> +/* When a HardFault occurs, return to pc+6 (test cases are 3 halfwords long) */
>> +exc_hard_fault:
>> +.equ exc_hard_fault_thumb, exc_hard_fault + 1
>> +.global exc_hard_fault_thumb
>> +    ldr r0, [sp, 0x18]
>> +    adds r0, 6
>> +    str r0, [sp, 0x18]
>> +    bx lr
>> +
>> +/*
>> + * exit: Terminate emulator
>> + * @r0: 0 - failure, 1 - success
>> + */
>> +exit:
>> +    movs r1, 0
>> +    cmp r0, 1
>> +    bne 1f
>> +    ldr r1, ADP_Stopped_ApplicationExit
>> +1:
>> +    movs r0, SYS_EXIT
>> +    semihosting_call
>> +.align 2
>> +ADP_Stopped_ApplicationExit:
>> +    .word 0x20026
>> diff --git a/tests/tcg/arm/test-armv6m-undef.ld b/tests/tcg/arm/test-armv6m-undef.ld
>> new file mode 100644
>> index 0000000000..43dbbf17d5
>> --- /dev/null
>> +++ b/tests/tcg/arm/test-armv6m-undef.ld
>> @@ -0,0 +1,21 @@
>> +ENTRY(exc_reset_thumb)
>> +
>> +SECTIONS
>> +{
>> +    . = 0x0;
>> +    .text : {
>> +        *(.text)
>> +    }
>> +    .data : {
>> +        *(.data)
>> +    }
>> +    .rodata : {
>> +        *(.rodata)
>> +    }
>> +    .bss : {
>> +        *(.bss)
>> +    }
>> +    /DISCARD/ : {
>> +        *(.ARM.attributes)
>> +    }
>> +}
>>


--
Alex Bennée

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [Qemu-devel] [PATCH v2 05/16] tests/tcg/mips: fix hello-mips compilation
  2019-02-28 22:42   ` Philippe Mathieu-Daudé
@ 2019-03-01  9:31     ` Alex Bennée
  0 siblings, 0 replies; 29+ messages in thread
From: Alex Bennée @ 2019-03-01  9:31 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: qemu-devel, edgar.iglesias, qemu-arm, jcmvbkbc


Philippe Mathieu-Daudé <philmd@redhat.com> writes:

> Hi Alex,
>
> On 2/28/19 9:25 PM, Alex Bennée wrote:
>> The compilation flags for proper building are in the source tree. We
>> also fix exit to 0 so the result is counted as a success.
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> ---
>>  tests/tcg/mips/Makefile.target | 11 ++++-------
>>  tests/tcg/mips/hello-mips.c    |  2 +-
>>  2 files changed, 5 insertions(+), 8 deletions(-)
>>
>> diff --git a/tests/tcg/mips/Makefile.target b/tests/tcg/mips/Makefile.target
>> index 086625f533..1a994d5525 100644
>> --- a/tests/tcg/mips/Makefile.target
>> +++ b/tests/tcg/mips/Makefile.target
>> @@ -8,15 +8,12 @@ MIPS_SRC=$(SRC_PATH)/tests/tcg/mips
>>  # Set search path for all sources
>>  VPATH 		+= $(MIPS_SRC)
>>
>> +# hello-mips is 32 bit only
>
> Correct.
>
>> +ifeq ($(findstring 64,$(TARGET_NAME)),)
>>  MIPS_TESTS=hello-mips
>>
>>  TESTS += $(MIPS_TESTS)
>>
>> -hello-mips: CFLAGS+=-ffreestanding
>> +hello-mips: CFLAGS+=-mno-abicalls -fno-PIC -mabi=32
>
> As suggested in the header.
>
>>  hello-mips: LDFLAGS+=-nostdlib
>> -
>> -# For MIPS32 and 64 we have a bunch of extra tests in sub-directories
>> -# however they are intended for system tests.
>> -
>> -run-hello-mips: hello-mips
>> -	$(call skip-test, $<, "BROKEN")
>> +endif
>> diff --git a/tests/tcg/mips/hello-mips.c b/tests/tcg/mips/hello-mips.c
>> index c7052fdf2e..4e1cf501af 100644
>> --- a/tests/tcg/mips/hello-mips.c
>> +++ b/tests/tcg/mips/hello-mips.c
>> @@ -60,5 +60,5 @@ static inline int write(int fd, const char *buf, int len)
>>  void __start(void)
>>  {
>>      write (1, "Hello, World!\n", 14);
>> -    exit1 (42);
>
> I understand 42 is to check SYS_exit1 worked, and this is not another
> qemu-user exit. But we were previously never checked the exit code for
> 42. Neither are we checking 'Hello, World' on stdout.

Hmm we could do better but this is pretty much a smoke test anyway.
Either things are so broken it crashes out (which we should detect) or
we exit with a 0 indicating a pass to the calling make.

Once we have a more use cases for non-zero exits we can come up with
some plumbing for checking things.

>
>> +    exit1(0);
>>  }
>>


--
Alex Bennée

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2019-03-01  9:32 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-28 20:25 [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm Alex Bennée
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 01/16] tests/tcg: add softmmu awareness to Makefile Alex Bennée
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 02/16] tests/tcg: enable tcg tests for softmmu Alex Bennée
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 03/16] tests/tcg: add QEMU_OPT option for test runner Alex Bennée
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 04/16] tests/tcg: add gdb runner variant Alex Bennée
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 05/16] tests/tcg/mips: fix hello-mips compilation Alex Bennée
2019-02-28 22:42   ` Philippe Mathieu-Daudé
2019-03-01  9:31     ` Alex Bennée
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 06/16] tests/docker: add debian-xtensa-cross image Alex Bennée
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 07/16] tests/tcg/xtensa: enable system tests Alex Bennée
2019-02-28 22:54   ` Philippe Mathieu-Daudé
2019-02-28 23:24     ` Max Filippov
2019-02-28 23:28       ` Philippe Mathieu-Daudé
2019-02-28 23:29   ` Max Filippov
2019-03-01  7:30     ` Alex Bennée
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 08/16] tests/tcg/arm: add ARMv6-M UNDEFINED 32-bit instruction test Alex Bennée
2019-02-28 22:56   ` Philippe Mathieu-Daudé
2019-03-01  7:32     ` Alex Bennée
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 09/16] tests/docker: add fedora-cris-cross compilers Alex Bennée
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 10/16] tests/tcg: split cris tests into bare and libc directories Alex Bennée
2019-02-28 23:07   ` Philippe Mathieu-Daudé
2019-02-28 23:21     ` Philippe Mathieu-Daudé
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 11/16] tests/tcg/cris: cleanup sys.c Alex Bennée
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 12/16] tests/tcg/cris: comment out the ccs test Alex Bennée
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 13/16] tests/tcg/cris: align mul operations Alex Bennée
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 14/16] tests/tcg: enable cris base user-mode tests Alex Bennée
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 15/16] .travis.yml: separate softfloat from check-tcg Alex Bennée
2019-02-28 20:25 ` [Qemu-devel] [PATCH v2 16/16] .travis.yml: add softmmu check-tcg tests Alex Bennée
2019-02-28 20:46 ` [Qemu-devel] [PATCH v2 00/16] Enabling tcg/tests for cris and system mode xtensa & arm no-reply

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.