summaryrefslogtreecommitdiff
path: root/source/components/disassembler/dmwalk.c
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2015-07-20 22:31:50 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2015-07-20 22:31:50 +0000
commit136eac2a0638d3c751b1987603f71a9ae26879fd (patch)
tree1e61df024e8a47b6bc4e25d07f455c9dcd7e2dc8 /source/components/disassembler/dmwalk.c
parentf3bbb1ca6c1b2b877d015a8f5f0c67e48a7a57ae (diff)
Notes
Diffstat (limited to 'source/components/disassembler/dmwalk.c')
-rw-r--r--source/components/disassembler/dmwalk.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/source/components/disassembler/dmwalk.c b/source/components/disassembler/dmwalk.c
index 6a8c505439f4..8ae0dc8d86d2 100644
--- a/source/components/disassembler/dmwalk.c
+++ b/source/components/disassembler/dmwalk.c
@@ -313,6 +313,8 @@ AcpiDmBlockType (
return (BLOCK_NONE);
}
+ /*lint -fallthrough */
+
default:
OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
@@ -410,7 +412,23 @@ AcpiDmDescendingOp (
const ACPI_OPCODE_INFO *OpInfo;
UINT32 Name;
ACPI_PARSE_OBJECT *NextOp;
+ UINT32 AmlOffset;
+
+
+ if (AcpiGbl_DbOpt_Verbose && AcpiGbl_PreviousOp)
+ {
+ /* Dump the entire statement in AML byte code */
+ if (Op->Common.Aml > AcpiGbl_PreviousOp->Common.Aml)
+ {
+ AcpiOsPrintf ("\n");
+ AcpiUtDumpBuffer (AcpiGbl_PreviousOp->Common.Aml,
+ (Op->Common.Aml - AcpiGbl_PreviousOp->Common.Aml),
+ DB_BYTE_DISPLAY, 0);
+ AcpiDmIndent (Level);
+ }
+ }
+ AcpiGbl_PreviousOp = Op;
if (Op->Common.DisasmFlags & ACPI_PARSEOP_IGNORE)
{
@@ -427,10 +445,12 @@ AcpiDmDescendingOp (
if (Info->WalkState)
{
+ AmlOffset = (UINT32) ACPI_PTR_DIFF (Op->Common.Aml,
+ Info->WalkState->ParserState.AmlStart);
VERBOSE_PRINT ((DB_FULL_OP_INFO,
(Info->WalkState->MethodNode ?
Info->WalkState->MethodNode->Name.Ascii : " "),
- Op->Common.AmlOffset, (UINT32) Op->Common.AmlOpcode));
+ AmlOffset, (UINT32) Op->Common.AmlOpcode));
}
if (Op->Common.AmlOpcode == AML_SCOPE_OP)