duskos

dusk os fork
git clone git://git.alexwennerberg.com/duskos
Log | Files | Refs | README | LICENSE

commit 8ba07a647b5a53edfab0cc524fca20271dd7ff93
parent 361d94df24cde99bc56b7178912cbafd0b44b87b
Author: Virgil Dupras <hsoft@hardcoded.net>
Date:   Wed, 22 Mar 2023 17:59:40 -0400

hal: remove the T) register

It wasn't all that useful after all...

Diffstat:
Mfs/comp/c/egen.fs | 2+-
Mfs/comp/c/expr.fs | 6+++---
Mfs/doc/hal.txt | 1-
Mposix/vm.c | 6+-----
4 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/fs/comp/c/egen.fs b/fs/comp/c/egen.fs @@ -131,7 +131,7 @@ current ' parseFactor realias _prep +, ; \ ops that can't freely swap their operands -: _prep ( left right -- left halop ) Result :?>T over Result :?>W ; +: _prep ( left right -- left halop ) Result :?>PS over Result :?>W ; : _/, _prep /, ; : _%, _prep %, ; : _<<, _prep <<, ; : _>>, _prep >>, ; diff --git a/fs/comp/c/expr.fs b/fs/comp/c/expr.fs @@ -53,9 +53,9 @@ struct[ Result : :?freeCurrentW ( -- ) currentW ?dup if :>PS then ; : :?>W dup :isW? if drop else :?freeCurrentW :>W then ; : :?>W$ dup :?>W :release ; - \ Free up W by sending it to T (if needed). - : :?>T ( self -- halop ) - dup :isW? if :release T) dup !, else :hal# then ; + \ Free up W by sending it to PS (if needed). + : :?>PS ( self -- halop ) + dup :isW? if dup :release dup :>PS then :hal# ; : :* ( self -- ) 1 swap to+ lvl ; : :& ( self -- ) dup lvl if -1 swap to+ lvl else diff --git a/fs/doc/hal.txt b/fs/doc/hal.txt @@ -62,7 +62,6 @@ The "high" layer of the HAL is provided by the assembler. Operand words: i) -T) Temporary *direct* register. Can't be used with +) Branching and conditions: diff --git a/posix/vm.c b/posix/vm.c @@ -36,8 +36,7 @@ no assembler to complete the HAL to "full" level later. It's all in there. #define _RCNT_ (NEXTMETA+4) #define NEXTWORD (_RCNT_+4) #define MOD (NEXTWORD+4) -#define TREG (MOD+4) -#define CURWORD (TREG+4) +#define CURWORD (MOD+4) #define HBANKCNT 0x10 #define HBANKSZ (HBANKCNT*4) #define HBANK (SYSVARS-HBANKSZ) @@ -50,7 +49,6 @@ no assembler to complete the HAL to "full" level later. It's all in there. #define OPRSP 3 #define OPMEM 4 #define OPIMM 5 -#define OPT 6 #define OPHASDISP 0x08 #define OP16B 0x100 #define OP8B 0x200 @@ -237,7 +235,6 @@ static dword readop() { case OPPSP: addr = vm.PSP; break; case OPRSP: addr = vm.RSP; break; case OPIMM: addr = vm.PC; vm.PC += 4; return addr; - case OPT: return TREG; } if (op & OPHASDISP) addr += gpc(); return addr; @@ -901,7 +898,6 @@ static void buildsysdict() { sysconst("[rcnt]", _RCNT_); sysconst("W)", OPW); sysconst("A)", OPA); sysconst("PSP)", OPPSP); sysconst("RSP)", OPRSP); - sysconst("T)", OPT); sysconst("Z)", CONDZ); sysconst("NZ)", CONDNZ); sysconst("C)", CONDC); sysconst("NC)", CONDNC); sysconst("<)", CONDC); sysconst(">=)", CONDNC);