Home | History | Annotate | Download | only in ppc

Lines Matching refs:spreg

20 """Helper to generate spreg.[ch] files."""
43 class Spreg(NamedTuple):
44 """A single spreg entry."""
52 def load_table(source: Path) -> list[Spreg]:
53 """Load the spreg table & return all entries in it."""
65 spreg = Spreg(
71 ret.append(spreg)
103 def gen_header(table: list[Spreg], output: Path) -> None:
104 """Write header to |output| from spreg |table|."""
112 typedef unsigned_word spreg;
118 for spreg in table:
119 fp.write(f" spr_{spreg.name} = {spreg.reg_nr},\n")
140 def gen_switch_is_valid(table: list[Spreg], fp: TextIO) -> None:
144 for spreg in table:
145 fp.write(f" case {spreg.reg_nr}:\n")
156 def gen_switch_is_readonly(table: list[Spreg], fp: TextIO) -> None:
162 for spreg in table:
163 if spreg.is_readonly:
168 fp.write(f" case {spreg.reg_nr}:\n")
177 def gen_switch_length(table: list[Spreg], fp: TextIO) -> None:
182 for spreg in table:
183 if spreg.length:
187 fp.write(f" case {spreg.reg_nr}:\n")
188 fp.write(f" return {spreg.length};\n")
195 def gen_source(table: list[Spreg], output: Path) -> None:
196 """Write header to |output| from spreg |table|."""
205 #include "spreg.h"
286 opts.header = DIR / "spreg.h"
287 opts.source = DIR / "spreg.c"