From: David E. Box Date: Wed, 28 Dec 2016 07:29:17 +0000 (+0800) Subject: ACPICA: Disassembler: Add Switch/Case disassembly support X-Git-Tag: v4.14-rc1~1489^2~2^2~4^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a654b8ca6d28736995de767ba62e801fd806a3b2;p=platform%2Fkernel%2Flinux-rpi.git ACPICA: Disassembler: Add Switch/Case disassembly support ACPICA commit 0f6cc80e8af519a3c31184367b0a9be7a399cf53 iasl compiles Switch/Case statements into a single iteration While loop with If/Else statements. This patch adds support to recognize this generated compiler output and disassemble it back to the original Switch statement. Linux kernel is not affected by this patch. Link: https://github.com/acpica/acpica/commit/0f6cc80e Signed-off-by: David E. Box Signed-off-by: Bob Moore Signed-off-by: Lv Zheng Signed-off-by: Rafael J. Wysocki --- diff --git a/drivers/acpi/acpica/aclocal.h b/drivers/acpi/acpica/aclocal.h index 7926600..7b97801 100644 --- a/drivers/acpi/acpica/aclocal.h +++ b/drivers/acpi/acpica/aclocal.h @@ -770,7 +770,7 @@ union acpi_parse_value { char *operator_symbol;/* Used for C-style operator name strings */\ char aml_op_name[16]) /* Op name (debug only) */ -/* Flags for disasm_flags field above */ +/* Internal opcodes for disasm_opcode field above */ #define ACPI_DASM_BUFFER 0x00 /* Buffer is a simple data buffer */ #define ACPI_DASM_RESOURCE 0x01 /* Buffer is a Resource Descriptor */ @@ -783,7 +783,10 @@ union acpi_parse_value { #define ACPI_DASM_LNOT_PREFIX 0x08 /* Start of a Lnot_equal (etc.) pair of opcodes */ #define ACPI_DASM_LNOT_SUFFIX 0x09 /* End of a Lnot_equal (etc.) pair of opcodes */ #define ACPI_DASM_HID_STRING 0x0A /* String is a _HID or _CID */ -#define ACPI_DASM_IGNORE 0x0B /* Not used at this time */ +#define ACPI_DASM_IGNORE_SINGLE 0x0B /* Ignore the opcode but not it's children */ +#define ACPI_DASM_SWITCH_PREDICATE 0x0C /* Object is a predicate for a Switch or Case block */ +#define ACPI_DASM_CASE 0x0D /* If/Else is a Case in a Switch/Case block */ +#define ACPI_DASM_DEFAULT 0x0E /* Else is a Default in a Switch/Case block */ /* * Generic operation (for example: If, While, Store)