w6c: delete unwired backend pass seams
This commit is contained in:
@@ -2,5 +2,5 @@ w6c — amd64 compiler. Reads `.ww`, writes Plan 9 amd64 assembly (`.s`).
|
||||
|
||||
- Plan 9 C style: tabs, K&R, short names. Mirror `ref/plan9front/sys/src/cmd/8c/` and `ref/plan9front/sys/src/cmd/cc/`. Do not invent new data shapes — reuse `Prog`/`Adr`/`Node`/`Sym`/`Type` conventions.
|
||||
- Frontend (lex, parse, check) lives in `../wcc/` and links as `libwcc.a`. This directory owns codegen only.
|
||||
- `gc.h` is the per-target header (Plan 9 cc convention). `cgen.c` walks the AST into `Prog` list; `txt.c` prints it. `peep.c` is peephole. `reg.c` is the register allocator. `swt.c` is switch lowering.
|
||||
- `gc.h` is the per-target header (Plan 9 cc convention). `cgen.c` performs the current AST lowering into a `Prog` list, including switch lowering; `txt.c` emits the assembler text. There is no peephole or register-allocation pass yet.
|
||||
- The text output must be readable by `w6a` (the amd64 assembler under `../w6a/`). When in doubt about syntax, run `w6a` on the output.
|
||||
|
||||
@@ -17683,6 +17683,3 @@ cg_file(Cg *c, FILE *out, Node *file)
|
||||
emit_defs(c, out, file);
|
||||
emit_lets(c, out, file);
|
||||
}
|
||||
|
||||
void peephole(Cg *c) { (void)c; }
|
||||
void regalloc_init(Cg *c) { (void)c; }
|
||||
|
||||
@@ -73,8 +73,4 @@ void txt_emit(FILE*, Prog *head);
|
||||
/* wwi.c — non-zero return: check_exported_type rejected a dangling export. */
|
||||
int wwi_emit(Checker *c, FILE *of, Node *file);
|
||||
|
||||
/* swt.c, peep.c, reg.c — placeholders for now */
|
||||
void peephole(Cg*);
|
||||
void regalloc_init(Cg*);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
/*
|
||||
* Currently a no-op; reserved for the kind of cleanup Plan 9 6c does
|
||||
* (folding adjacent moves, removing redundant compares). Wire in
|
||||
* `peephole(c)` from cgen.c after the main walk.
|
||||
*/
|
||||
#include "gc.h"
|
||||
|
||||
void peep_run(Cg *c) { (void)c; }
|
||||
@@ -1,9 +0,0 @@
|
||||
/*
|
||||
* The current cgen pins everything to AX with BX as a scratch
|
||||
* top-of-stack — no real allocation. This file is the seam where a
|
||||
* linear-scan or graph-colouring pass would land later; today it's
|
||||
* empty.
|
||||
*/
|
||||
#include "gc.h"
|
||||
|
||||
void reg_run(Cg *c) { (void)c; }
|
||||
@@ -1,8 +0,0 @@
|
||||
/*
|
||||
* Stub for now: cgen falls through to a no-op for N_SWITCH. When we
|
||||
* add a real lowering, it will live here, mirroring Plan 9 6c's
|
||||
* pswt.c.
|
||||
*/
|
||||
#include "gc.h"
|
||||
|
||||
void swt_lower(Cg *c, Node *n) { (void)c; (void)n; }
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Format we emit (and that w6a expects):
|
||||
* TEXT name<framesize>
|
||||
* TEXT name,$framesize
|
||||
* MOVQ $1, AX
|
||||
* MOVQ AX, name(SB) ; extern symbol
|
||||
* MOVQ off(BP), AX ; local
|
||||
|
||||
Reference in New Issue
Block a user