Merge tag 'qemu-macppc-20230206' of https://github.com/mcayland/qemu into staging
[qemu.git] / tests / tcg / nios2 / test-shadow-1.S
blob79ef69db1252ff59f85e17959e93d5a25fa74e7f
1 /*
2  * Regression test for TCG indirect global lowering.
3  *
4  * Copyright Linaro Ltd 2022
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  */
8 #include "semicall.h"
10         .text
11         .set noat
12         .align  2
13         .globl  main
14         .type   main, @function
16 main:
17         /* Initialize r0 in shadow register set 1. */
18         movhi   at, 1                   /* PRS=1, CRS=0, RSIE=0, PIE=0 */
19         wrctl   status, at
20         wrprs   zero, zero
22         /* Change current register set to 1. */
23         movi    at, 1 << 10             /* PRS=0, CRS=1, RSIE=0, PIE=0 */
24         wrctl   estatus, at
25         movia   ea, 1f
26         eret
28         /* Load address for callr, then end TB. */
29 1:      movia   at, 3f
30         br      2f
32         /* Test case! TCG abort on indirect lowering across brcond. */
33 2:      callr   at
35         /* exit(0) */
36 3:      movi    r4, HOSTED_EXIT
37         movi    r5, 0
38         semihosting_call
40         .size   main, . - main