summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2023-06-14 17:06:50 (GMT)
committerGitHub <noreply@github.com>2023-06-14 17:06:50 (GMT)
commitd50930a6a846280b5da299f9c2f9a01669dbf06c (patch)
tree7c5a3e1fde4efebfe6e95ff0ec425faba009ea62
parent74c2422fa2d7e17969a7554a3bf17f91e4e5a85f (diff)
downloadcpython-d50930a6a846280b5da299f9c2f9a01669dbf06c.zip
cpython-d50930a6a846280b5da299f9c2f9a01669dbf06c.tar.gz
cpython-d50930a6a846280b5da299f9c2f9a01669dbf06c.tar.bz2
gh-105481: Fix types and a bug for pseudos (#105788)
-rw-r--r--Tools/cases_generator/generate_cases.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/Tools/cases_generator/generate_cases.py b/Tools/cases_generator/generate_cases.py
index 8aa500e..8d5739f 100644
--- a/Tools/cases_generator/generate_cases.py
+++ b/Tools/cases_generator/generate_cases.py
@@ -510,7 +510,7 @@ class OverriddenInstructionPlaceHolder:
name: str
-AnyInstruction = Instruction | MacroInstruction
+AnyInstruction = Instruction | MacroInstruction | PseudoInstruction
INSTR_FMT_PREFIX = "INSTR_FMT_"
INSTR_FLAG_SUFFIX = "_FLAG"
@@ -550,6 +550,7 @@ class Analyzer:
macros: dict[str, parser.Macro]
macro_instrs: dict[str, MacroInstruction]
families: dict[str, parser.Family]
+ pseudos: dict[str, parser.Pseudo]
pseudo_instrs: dict[str, PseudoInstruction]
def parse(self) -> None:
@@ -607,7 +608,7 @@ class Analyzer:
# Parse from start
psr.setpos(start)
- thing: parser.InstDef | parser.Macro | parser.Family | None
+ thing: parser.InstDef | parser.Macro | parser.Pseudo | parser.Family | None
thing_first_token = psr.peek()
while thing := psr.definition():
if ws := [w for w in RESERVED_WORDS if variable_used(thing, w)]:
@@ -927,7 +928,7 @@ class Analyzer:
popped = str(-low)
pushed = str(sp - low)
case parser.Pseudo():
- instr = self.pseudos[thing.name]
+ instr = self.pseudo_instrs[thing.name]
popped = pushed = None
# Calculate stack effect, and check that it's the the same
# for all targets.