aboutsummaryrefslogtreecommitdiff
path: root/isa/rv64si/wfi.S
blob: 956121a0485ee85f35089a8879a4b86bedf16daf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# See LICENSE for license details.

#*****************************************************************************
# wfi.S
#-----------------------------------------------------------------------------
#
# Test wait-for-interrupt instruction.
#

#include "riscv_test.h"
#include "test_macros.h"

RVTEST_RV64S
RVTEST_CODE_BEGIN

#ifdef __MACHINE_MODE
  #define sstatus mstatus
  #define sie mie
  #define sip mip
  #undef MIP_SSIP
  #define MIP_SSIP MIP_MSIP
#endif

  # Make sure wfi doesn't stall if an interrupt is pending
  csrc sstatus, SSTATUS_IE
  csrs sie, MIP_SSIP
  csrs sip, MIP_SSIP
  wfi

  RVTEST_PASS

  TEST_PASSFAIL

RVTEST_CODE_END

  .data
RVTEST_DATA_BEGIN

  TEST_DATA

RVTEST_DATA_END