소스 검색

docs: record the MBF multiplication rung (runtime 1573, rt_exec 99/99)

Eric Streit 1 일 전
부모
커밋
ef9f654978
1개의 변경된 파일과 13개의 추가작업 그리고 9개의 파일을 삭제
  1. 13 9
      CALC-COMPILE.md

+ 13 - 9
CALC-COMPILE.md

@@ -446,8 +446,8 @@ Exec86):
 | `0946e80` | `v-TP3-CALC-REALCONST` | `ERR 41 15911` (`Upcase`) |
 | `17f7f7c` | `v-TP3-CALC-UPCASE` | **`ERR 102 18267`** (real output) |
 
-- **Code HEAD** `45a29e6` (`v-TP3-MBF-ADD`); this commit only updates this
-  document.  Nothing pushed; `origin/master` is behind by twenty-one code
+- **Code HEAD** `c92d2a8` (`v-TP3-MBF-MUL`); this commit only updates this
+  document.  Nothing pushed; `origin/master` is behind by twenty-two code
   commits.  Two non-ladder commits in the same period are the terminal-config
   work (`v-TP3-TERMCFG`) and the editor key map (`v-TP3-EDITORKEYS`); they do
   not move the ladder and are documented in `TERMINAL.md`.
@@ -553,10 +553,10 @@ Exec86):
   `ERR 102 18267`, terminal config **4/4**, 64 `.COM` linked and **72 executed
   under both qemu and Exec86** (`t64_arrays` is compile-only: its image is past
   the 8 KB boot-sector read).  `tests/nonvacuity.sh`: **108 ok, 0 failed**.
-  The runtime is 1325 bytes (wrintw, real_from_int, real_add, real_sub; the
-  golden was re-blessed) and `tests/rt_exec.py` passes **85/85**, including 16
-  exact-byte MBF add/sub cases.  `check_realconst.py` pins the measured
-  6-byte Real operand bytes.
+  The runtime is 1573 bytes (wrintw, real_from_int, real_add, real_sub,
+  real_mul; the golden was re-blessed) and `tests/rt_exec.py` passes
+  **99/99**, including 16 add/sub and ten multiply exact-byte cases.
+  `check_realconst.py` pins the measured 6-byte Real operand bytes.
 - **`tests/nonvacuity.sh`:** re-run after this commit's cases (the set
   membership bit among them); see the commit message for the count. It is not in
   the default `run_all.sh` and must be run **manually** after touching any check.
@@ -682,9 +682,13 @@ Then the two that are *outside* the ladder and gate the goal as stated:
         (alignment, cancellation, signs, carry out, the exponent-overflow
         STC path).  Two encoder traps: `XOR [mem],reg` is 30h not 32h, and
         FCML rejects `OR AL,AL`.
-      * **NEXT:** `remult`, `rediv` (`remul11..23` scratch), `recmp`,
-        `reint`, then `fmtreal`/`ascreal` for `Write(Value:FW:DEC)`, `Str`
-        and `Val`.  Each is a direct transcription with rt_exec cases.
+      * **DONE: `real_mul`** (`v-TP3-MBF-MUL`, entry 24).  TPSRC2 `remult`
+        with `testexp` inlined; ten rt_exec cases.  Two jump bugs found:
+        rel8 overflow to the far zero/return targets (JccNear/JmpNear plus a
+        FixUp range guard now), and JccNear's condition polarity.
+      * **NEXT:** `rediv` (the five-byte long division), `recmp`, `reint`,
+        then `fmtreal`/`ascreal` for `Write(Value:FW:DEC)`, `Str` and `Val`.
+        Each is a direct transcription with rt_exec cases.
       * **THEN** the compiler side: real expressions need a value model
         (pointers to 6-byte temporaries), real comparisons, and real function
         results (currently refused because the result is wider than a word).