tests/tcg/nios2: Add test-shadow-1
Add a regression test for tcg indirect global lowering. This appeared with nios2, with cps != 0, so that we use indirection into the shadow register set. An indirect call verifies alignment of rA. The use of rA was live across the brcond leading to a tcg_debug_assert failure. Cc: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20220421151735.31996-65-richard.henderson@linaro.org>
This commit is contained in:
parent
ccbaa553a1
commit
7f176c5a0b
@ -30,3 +30,4 @@ QEMU_OPTS = -M 10m50-ghrd,vic=on -semihosting >$@.out -kernel
|
|||||||
|
|
||||||
memory: CFLAGS+=-DCHECK_UNALIGNED=0
|
memory: CFLAGS+=-DCHECK_UNALIGNED=0
|
||||||
TESTS += $(MULTIARCH_TESTS)
|
TESTS += $(MULTIARCH_TESTS)
|
||||||
|
TESTS += test-shadow-1
|
||||||
|
40
tests/tcg/nios2/test-shadow-1.S
Normal file
40
tests/tcg/nios2/test-shadow-1.S
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
/*
|
||||||
|
* Regression test for TCG indirect global lowering.
|
||||||
|
*
|
||||||
|
* Copyright Linaro Ltd 2022
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "semicall.h"
|
||||||
|
|
||||||
|
.text
|
||||||
|
.set noat
|
||||||
|
.align 2
|
||||||
|
.globl main
|
||||||
|
.type main, @function
|
||||||
|
|
||||||
|
main:
|
||||||
|
/* Initialize r0 in shadow register set 1. */
|
||||||
|
movhi at, 1 /* PRS=1, CRS=0, RSIE=0, PIE=0 */
|
||||||
|
wrctl status, at
|
||||||
|
wrprs zero, zero
|
||||||
|
|
||||||
|
/* Change current register set to 1. */
|
||||||
|
movi at, 1 << 10 /* PRS=0, CRS=1, RSIE=0, PIE=0 */
|
||||||
|
wrctl estatus, at
|
||||||
|
movia ea, 1f
|
||||||
|
eret
|
||||||
|
|
||||||
|
/* Load address for callr, then end TB. */
|
||||||
|
1: movia at, 3f
|
||||||
|
br 2f
|
||||||
|
|
||||||
|
/* Test case! TCG abort on indirect lowering across brcond. */
|
||||||
|
2: callr at
|
||||||
|
|
||||||
|
/* exit(0) */
|
||||||
|
3: movi r4, HOSTED_EXIT
|
||||||
|
movi r5, 0
|
||||||
|
semihosting_call
|
||||||
|
|
||||||
|
.size main, . - main
|
Loading…
Reference in New Issue
Block a user