Original source ./drivers/acpi/acpica/dswexec.c in acpi_ds_exec_end_op
if (ACPI_SUCCESS(status)) { /* * Dispatch the request to the appropriate interpreter handler * routine. There is one routine per opcode "type" based upon the * number of opcode arguments and return type. */ status = acpi_gbl_op_type_dispatch[op_type] (walk_state);
} else {
.. disassembled:
if (!(walk_state->op_info->flags & AML_NO_OPERAND_RESOLVE)) {
683: 48 8b 83 10 04 00 00 mov 0x410(%rbx),%rax
68a: f6 40 11 40 testb $0x40,0x11(%rax)
68e: 74 21 je 6b1 <acpi_ds_exec_end_op+0x177> * Dispatch the request to the appropriate interpreter handler * routine. There is one routine per opcode "type" based upon the * number of opcode arguments and return type. */ status = acpi_gbl_op_type_dispatch[op_type] (walk_state);
690: 44 89 f0 mov %r14d,%eax
693: 41 80 fe 0b cmp $0xb,%r14b
697: 77 28 ja 6c1 <acpi_ds_exec_end_op+0x187>
699: 48 8b 04 c5 00 00 00 mov 0x0(,%rax,8),%rax
6a0: 00
6a1: 48 89 df mov %rbx,%rdi
6a4: e8 00 00 00 00 call 6a9 <acpi_ds_exec_end_op+0x16f>
6a9: 41 89 c4 mov %eax,%r12d
6ac: e9 8f 00 00 00 jmp 740 <acpi_ds_exec_end_op+0x206> [walk_state->
6b1: 0f b6 43 0d movzbl 0xd(%rbx),%eax num_operands - 1]),
6b5: 8d 50 ff lea -0x1(%rax),%edx [walk_state->
6b8: 48 63 d2 movslq %edx,%rdx
6bb: 48 83 fa 09 cmp $0x9,%rdx
6bf: 76 02 jbe 6c3 <acpi_ds_exec_end_op+0x189>
6c1: 0f 0b ud2
"Generates an invalid opcode. This instruction is provided for software testing to explicitly generate an invalid opcode. The opcode for this instruction is reserved for this purpose.
Other than raising the invalid opcode exception, this instruction is the same as the NOP instruction."
Original source ./drivers/ acpi/acpica/ dswexec. c in acpi_ds_exec_end_op
if (ACPI_SUCCESS( status) ) {
/*
* Dispatch the request to the appropriate interpreter handler
* routine. There is one routine per opcode "type" based upon the
* number of opcode arguments and return type.
*/
status =
acpi_gbl_ op_type_ dispatch[ op_type] (walk_state);
} else {
.. disassembled:
if (!(walk_ state-> op_info- >flags & AML_NO_ OPERAND_ RESOLVE) ) { exec_end_ op+0x177>
* Dispatch the request to the appropriate interpreter handler
* routine. There is one routine per opcode "type" based upon the
* number of opcode arguments and return type.
*/
status =
acpi_gbl_ op_type_ dispatch[ op_type] (walk_state); exec_end_ op+0x187> exec_end_ op+0x16f> exec_end_ op+0x206>
[walk_ state->
num_ operands - 1]),
[walk_ state-> exec_end_ op+0x189>
683: 48 8b 83 10 04 00 00 mov 0x410(%rbx),%rax
68a: f6 40 11 40 testb $0x40,0x11(%rax)
68e: 74 21 je 6b1 <acpi_ds_
690: 44 89 f0 mov %r14d,%eax
693: 41 80 fe 0b cmp $0xb,%r14b
697: 77 28 ja 6c1 <acpi_ds_
699: 48 8b 04 c5 00 00 00 mov 0x0(,%rax,8),%rax
6a0: 00
6a1: 48 89 df mov %rbx,%rdi
6a4: e8 00 00 00 00 call 6a9 <acpi_ds_
6a9: 41 89 c4 mov %eax,%r12d
6ac: e9 8f 00 00 00 jmp 740 <acpi_ds_
6b1: 0f b6 43 0d movzbl 0xd(%rbx),%eax
6b5: 8d 50 ff lea -0x1(%rax),%edx
6b8: 48 63 d2 movslq %edx,%rdx
6bb: 48 83 fa 09 cmp $0x9,%rdx
6bf: 76 02 jbe 6c3 <acpi_ds_
6c1: 0f 0b ud2
^^ crash on 0f 0b ud2 instruction
From https:/ /mudongliang. github. io/x86/ html/file_ module_ x86_id_ 318.html ud2 does:
"Generates an invalid opcode. This instruction is provided for software testing to explicitly generate an invalid opcode. The opcode for this instruction is reserved for this purpose.
Other than raising the invalid opcode exception, this instruction is the same as the NOP instruction."