summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Python/bytecodes.c23
-rw-r--r--Python/generated_cases.c.h2
-rw-r--r--Tools/cases_generator/generate_cases.py3
3 files changed, 19 insertions, 9 deletions
diff --git a/Python/bytecodes.c b/Python/bytecodes.c
index 16ac1d9..e87ca6e 100644
--- a/Python/bytecodes.c
+++ b/Python/bytecodes.c
@@ -1,3 +1,11 @@
+// This file contains instruction definitions.
+// It is read by Tools/cases_generator/generate_cases.py
+// to generate Python/generated_cases.c.h.
+// Note that there is some dummy C code at the top and bottom of the file
+// to fool text editors like VS Code into believing this is valid C code.
+// The actual instruction definitions start at // BEGIN BYTECODES //.
+// See Tools/cases_generator/README.md for more information.
+
#include "Python.h"
#include "pycore_abstract.h" // _PyIndex_Check()
#include "pycore_call.h" // _PyObject_FastCallDictTstate()
@@ -4003,13 +4011,14 @@ dummy_func(
// END BYTECODES //
}
- error:;
- exception_unwind:;
- handle_eval_breaker:;
- resume_frame:;
- resume_with_error:;
- start_frame:;
- unbound_local_error:;
+ error:
+ exception_unwind:
+ handle_eval_breaker:
+ resume_frame:
+ resume_with_error:
+ start_frame:
+ unbound_local_error:
+ ;
}
// Families go below this point //
diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h
index bea51d7..c678de5 100644
--- a/Python/generated_cases.c.h
+++ b/Python/generated_cases.c.h
@@ -1,4 +1,4 @@
-// This file is generated by Tools/scripts/generate_cases.py
+// This file is generated by Tools/cases_generator/generate_cases.py
// Do not edit!
TARGET(NOP) {
diff --git a/Tools/cases_generator/generate_cases.py b/Tools/cases_generator/generate_cases.py
index 82e5801..ec2481b 100644
--- a/Tools/cases_generator/generate_cases.py
+++ b/Tools/cases_generator/generate_cases.py
@@ -6,6 +6,7 @@
import argparse
import io
+import os
import re
import sys
@@ -67,7 +68,7 @@ def write_cases(f: io.TextIOBase, instrs: list[InstDef]):
for target in re.findall(r"(?:PREDICT|GO_TO_INSTRUCTION)\((\w+)\)", inst.block.text):
predictions.add(target)
indent = " "
- f.write("// This file is generated by Tools/scripts/generate_cases.py\n")
+ f.write(f"// This file is generated by {os.path.relpath(__file__)}\n")
f.write("// Do not edit!\n")
for instr in instrs:
assert isinstance(instr, InstDef)