mirror of
https://github.com/acpica/acpica/
synced 2024-12-27 12:49:46 +03:00
Disassembler: Update for CondRefOf operator.
The operand for this operator does not ever need to generate an external declaration. Change the type of the operand from a SuperName to a simple Namestring. Improves disassembly of this operator if the operand is a control method.
This commit is contained in:
parent
b5513899b2
commit
64e52a3577
@ -883,22 +883,17 @@ AcpiDmXrefDescendingOp (
|
||||
Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_ANY,
|
||||
ACPI_IMODE_EXECUTE, ACPI_NS_SEARCH_PARENT | ACPI_NS_DONT_OPEN_SCOPE,
|
||||
WalkState, &Node);
|
||||
if (ACPI_SUCCESS (Status) && (Node->Flags & ANOBJ_IS_EXTERNAL))
|
||||
{
|
||||
Status = AE_NOT_FOUND;
|
||||
}
|
||||
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
if (Status == AE_NOT_FOUND)
|
||||
{
|
||||
AcpiDmAddToExternalList (Op, Path, (UINT8) ObjectType, 0);
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* We could install this into the namespace, but we catch duplicate
|
||||
* externals when they are added to the list.
|
||||
*/
|
||||
#if 0
|
||||
Status = AcpiNsLookup (WalkState->ScopeInfo, Path, ACPI_TYPE_ANY,
|
||||
ACPI_IMODE_LOAD_PASS1, ACPI_NS_DONT_OPEN_SCOPE,
|
||||
WalkState, &Node);
|
||||
|
@ -464,6 +464,18 @@ AcpiDmAddToExternalList (
|
||||
return;
|
||||
}
|
||||
|
||||
/* For certain opcodes, we don't need an external */
|
||||
|
||||
if (Op && Op->Asl.Parent)
|
||||
{
|
||||
if (Op->Asl.Parent->Asl.AmlOpcode == AML_COND_REF_OF_OP)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* Bit 0x80 of Value used to indicate method resolution status */
|
||||
|
||||
if (Type == ACPI_TYPE_METHOD)
|
||||
{
|
||||
if (Value & 0x80)
|
||||
@ -657,6 +669,7 @@ AcpiDmGetExternalsFromFile (
|
||||
{
|
||||
fprintf (stderr, "Could not open external reference file \"%s\"\n",
|
||||
Gbl_ExternalRefFilename);
|
||||
Gbl_ExternalRefFilename = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1102,7 +1115,7 @@ AcpiDmEmitExternals (
|
||||
{
|
||||
AcpiOsPrintf (
|
||||
" /*\n * External declarations that were imported from\n"
|
||||
" * the reference file [%s]\n */\n",
|
||||
" * input reference file [%s]\n */\n",
|
||||
Gbl_ExternalRefFilename);
|
||||
|
||||
NextExternal = AcpiGbl_ExternalList;
|
||||
|
@ -165,7 +165,7 @@
|
||||
#define ARGP_BYTELIST_OP ARGP_LIST1 (ARGP_NAMESTRING)
|
||||
#define ARGP_CONCAT_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
|
||||
#define ARGP_CONCAT_RES_OP ARGP_LIST3 (ARGP_TERMARG, ARGP_TERMARG, ARGP_TARGET)
|
||||
#define ARGP_COND_REF_OF_OP ARGP_LIST2 (ARGP_SUPERNAME, ARGP_SUPERNAME)
|
||||
#define ARGP_COND_REF_OF_OP ARGP_LIST2 (ARGP_NAMESTRING, ARGP_SUPERNAME)
|
||||
#define ARGP_CONNECTFIELD_OP ARGP_LIST1 (ARGP_NAMESTRING)
|
||||
#define ARGP_CONTINUE_OP ARG_NONE
|
||||
#define ARGP_COPY_OP ARGP_LIST2 (ARGP_TERMARG, ARGP_SIMPLENAME)
|
||||
|
Loading…
Reference in New Issue
Block a user