| #------------------------------------------------------------------------------ | |
| # | |
| # Get LoongArch interrupt status | |
| # | |
| # Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.<BR> | |
| # | |
| # SPDX-License-Identifier: BSD-2-Clause-Patent | |
| # | |
| #------------------------------------------------------------------------------ | |
| ASM_GLOBAL ASM_PFX(GetInterruptState) | |
| #/** | |
| # Retrieves the current CPU interrupt state. | |
| # | |
| # Returns TRUE means interrupts are currently enabled. Otherwise, | |
| # returns FALSE. | |
| # | |
| # @retval TRUE CPU interrupts are enabled. | |
| # @retval FALSE CPU interrupts are disabled. | |
| # | |
| #**/ | |
| ASM_PFX(GetInterruptState): | |
| li.w $t1, 0x4 | |
| csrrd $t0, 0x0 | |
| and $t0, $t0, $t1 | |
| beqz $t0, 1f | |
| li.w $a0, 0x1 | |
| b 2f | |
| 1: | |
| li.w $a0, 0x0 | |
| 2: | |
| jirl $zero, $ra, 0 | |
| .end |