Update of /cvsroot/wisp/wisp/users/dig
In directory sc8-pr-cvs1:/tmp/cvs-serv17288
Modified Files:
mswhello.tran tran-builtins
Log Message:
introduced the 3rev, 4rev, and 5rev builtins
Index: mswhello.tran
===================================================================
RCS file: /cvsroot/wisp/wisp/users/dig/mswhello.tran,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- mswhello.tran 16 May 2003 17:27:01 -0000 1.8
+++ mswhello.tran 16 May 2003 20:34:38 -0000 1.9
@@ -15,9 +15,8 @@
// :macro GetStdHandle \ (handle-number -- handle)
commit ref GetStdHandle@kernel32 $call %eax ;
-\ FIXME: reverse arguments
-\ // :macro WriteFile \ (file buffer count result* overlapped* -- result)
-\ commit ref WriteFile@kernel32 $call %eax ;
+// :macro WriteFile \ (file buffer count result* overlapped* -- result)
+ 5rev commit ref WriteFile@kernel32 $call %eax ;
// :macro ExitProcess \ (code --)
commit ref ExitProcess@kernel32 $call ;
@@ -26,8 +25,7 @@
label _start
-11 GetStdHandle
- 0 $push ref rckeep $push 7 $push ref message $push $push
- ref WriteFile@kernel32 $call
+ ref message 7 ref rckeep 0 WriteFile drop
0 ExitProcess
.data
Index: tran-builtins
===================================================================
RCS file: /cvsroot/wisp/wisp/users/dig/tran-builtins,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- tran-builtins 16 May 2003 17:21:27 -0000 1.7
+++ tran-builtins 16 May 2003 20:34:38 -0000 1.8
@@ -43,6 +43,21 @@
//
Regstack = []
+3rev
+ if len(Regstack) < 3: raise 'unstacking is not implemented yet'
+ r = Regstack[-3:]; r.reverse()
+ Regstack = Regstack[:-3] + r
+
+4rev
+ if len(Regstack) < 4: raise 'unstacking is not implemented yet'
+ r = Regstack[-4:]; r.reverse()
+ Regstack = Regstack[:-4] + r
+
+5rev
+ if len(Regstack) < 5: raise 'unstacking is not implemented yet'
+ r = Regstack[-5:]; r.reverse()
+ Regstack = Regstack[:-5] + r
+
:macro|name
if len(Regstack) > 2: raise 'too long argument pattern', Regstack
name = ' '.join([name] + [matchers(i).next() for i in Regstack])
|