summaryrefslogtreecommitdiffstats
path: root/Tools/cases_generator/tier2_generator.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/cases_generator/tier2_generator.py')
-rw-r--r--Tools/cases_generator/tier2_generator.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/Tools/cases_generator/tier2_generator.py b/Tools/cases_generator/tier2_generator.py
index abd9b8d..dd16a1a 100644
--- a/Tools/cases_generator/tier2_generator.py
+++ b/Tools/cases_generator/tier2_generator.py
@@ -39,7 +39,14 @@ def declare_variable(
required.remove(var.name)
type, null = type_and_null(var)
space = " " if type[-1].isalnum() else ""
- out.emit(f"{type}{space}{var.name};\n")
+ if var.condition:
+ out.emit(f"{type}{space}{var.name} = {null};\n")
+ if uop.replicates:
+ # Replicas may not use all their conditional variables
+ # So avoid a compiler warning with a fake use
+ out.emit(f"(void){var.name};\n")
+ else:
+ out.emit(f"{type}{space}{var.name};\n")
def declare_variables(uop: Uop, out: CWriter) -> None:
@@ -208,6 +215,9 @@ def generate_tier2(
for name, uop in analysis.uops.items():
if uop.properties.tier == 1:
continue
+ if uop.properties.oparg_and_1:
+ out.emit(f"/* {uop.name} is split on (oparg & 1) */\n\n")
+ continue
if uop.is_super():
continue
why_not_viable = uop.why_not_viable()