| // SPDX-License-Identifier: GPL-2.0+ |
| * Copyright (c) 2018 Heinrich Schuchardt <xypron.glpk@gmx.de> |
| * Test the handling of exceptions by trying to execute an undefined |
| #include <efi_selftest.h> |
| * undefined_instruction() - try to executed an undefined instruction |
| static void undefined_instruction(void) |
| * 0xe7f...f. is undefined in ARM mode |
| * 0xde.. is undefined in Thumb mode |
| asm volatile (".word 0xe7f7defb\n"); |
| #elif defined(CONFIG_RISCV) |
| asm volatile (".word 0xffffffff\n"); |
| #elif defined(CONFIG_X86) |
| asm volatile (".word 0xffff\n"); |
| * execute() - execute unit test |
| * Return: EFI_ST_SUCCESS for success |
| efi_st_error("An undefined instruction exception was not raised\n"); |
| EFI_UNIT_TEST(exception) = { |
| .phase = EFI_EXECUTE_BEFORE_BOOTTIME_EXIT, |