
## DIFF MODE — CRITICAL CONSTRAINT

You are modifying an EXISTING module, not writing a new one from scratch.

Output a unified diff showing ONLY the lines you change:

```diff
--- gold
+++ gate
@@ -<start>,<count> +<start>,<count> @@
 <context line (unchanged)>
-<removed line from gold>
+<replacement line for gate>
 <context line (unchanged)>
```

Rules:
1. Everything NOT in your diff stays IDENTICAL to the gold source.
2. Do NOT touch lines unrelated to your optimization.
3. Do NOT rewrite data-path read logic (e.g. fifo_dout_y assignment,
   memory read expressions) unless your optimization specifically
   targets that path. Most area optimizations only affect control-path
   logic — full/empty detection, pointer arithmetic, guard conditions.
4. Include at least 2 lines of unchanged context around each hunk so
   the diff can be applied unambiguously.
5. The module declaration line and endmodule line must NOT appear in
   your diff — they stay identical to gold.
6. After your diff block, include the standard JSON proposals block
   with transformation_class, rationale, claimed_area_delta_pct.
   Set gate_sv to the literal string "DIFF_MODE" — the orchestrator
   applies your diff to produce the actual gate_sv.
