tests/tcg/tricore: Add test for ld.h

this exercises the error reported in
https://gitlab.com/qemu-project/qemu/-/issues/652.

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
Message-Id: <20230203132132.511254-1-kbastian@mail.uni-paderborn.de>
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
master
Bastian Koppelmann 2023-02-03 14:21:32 +01:00
parent 77eb0085c8
commit 6e34f54d88
3 changed files with 29 additions and 0 deletions

View File

@ -14,6 +14,7 @@ TESTS += test_ftoi.tst
TESTS += test_imask.tst
TESTS += test_insert.tst
TESTS += test_ld_bu.tst
TESTS += test_ld_h.tst
TESTS += test_madd.tst
TESTS += test_msub.tst
TESTS += test_muls.tst

View File

@ -21,6 +21,7 @@
#define DREG_TEMP %d11
#define DREG_TEST_NUM %d14
#define DREG_CORRECT_RESULT %d15
#define DREG_CORRECT_RESULT_2 %d13
#define AREG_ADDR %a0
#define AREG_CORRECT_RESULT %a3
@ -79,6 +80,18 @@ test_ ## num: \
LI(DREG_CORRECT_RESULT, addr_result) \
jne DREG_CALC_RESULT, DREG_CORRECT_RESULT, fail;
#define TEST_LD_SRO(insn, num, result, addr_result, ld_pattern) \
test_ ## num: \
LIA(AREG_ADDR, test_data) \
insn %d15, ld_pattern; \
LI(DREG_CORRECT_RESULT_2, result) \
mov DREG_TEST_NUM, num; \
jne %d15, DREG_CORRECT_RESULT_2, fail; \
mov.d DREG_CALC_RESULT, AREG_ADDR; \
LI(DREG_CORRECT_RESULT, addr_result) \
jne DREG_CALC_RESULT, DREG_CORRECT_RESULT, fail;
/* Actual test case type
* e.g inst %dX, %dY -> TEST_D_D
* inst %dX, %dY, %dZ -> TEST_D_DD

View File

@ -0,0 +1,15 @@
#include "macros.h"
.data
test_data:
.word 0xaffedead
.word 0x001122ff
.text
.global _start
_start:
# expect. addr reg val after load
# insn num expect. load value | pattern for loading
# | | | | |
TEST_LD (ld.h, 1, 0xffffaffe, MEM_BASE_ADDR, [AREG_ADDR]2)
TEST_LD_SRO(ld.h, 2, 0x000022ff, MEM_BASE_ADDR, [AREG_ADDR]4)
TEST_PASSFAIL