Update of /cvsroot/wisp/wisp/modules/cpu
In directory usw-pr-cvs1:/tmp/cvs-serv4879/modules/cpu
Modified Files:
ia32.wim
Log Message:
Implemented the beginnings of Worth's delay-optimization.
Index: ia32.wim
===================================================================
RCS file: /cvsroot/wisp/wisp/modules/cpu/ia32.wim,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- ia32.wim 26 Aug 2002 16:18:19 -0000 1.24
+++ ia32.wim 31 Aug 2002 14:29:22 -0000 1.25
@@ -640,6 +640,16 @@
; Data movement
(mov 8086+?
((rm8 cc) #o017 (byte+ '#o220 1) (modrm 0 '0)) ; SETxx
+ ; FIXME: this should be done with fewer rules
+ ((%eax cc) (mov '%al 1) (zex '%eax '%al))
+ ((%ebx cc) (mov '%bl 1) (zex '%ebx '%bl))
+ ((%ecx cc) (mov '%cl 1) (zex '%ecx '%bl))
+ ((%edx cc) (mov '%dl 1) (zex '%edx '%bl))
+ ((%ax cc) (mov '%al 1) (zex '%ax '%al))
+ ((%bx cc) (mov '%bl 1) (zex '%bx '%bl))
+ ((%cx cc) (mov '%cl 1) (zex '%cx '%bl))
+ ((%dx cc) (mov '%dl 1) (zex '%dx '%bl))
+
((rm* = reg*) (osize++lit 0 #o210) (modrm 0 1))
((reg* = rm*) (osize++lit 0 #o212) (modrm 1 0))
((reg8 imm) (byte+ '#o260 0) (byte 1))
@@ -956,10 +966,10 @@
(lambda (item)
(cond
((integer? item)
- (list-ref operands item))
+ (list-ref operands item))
((and (cons? item)
(eq? (car item) 'quote))
- (second item))
+ (second item))
(else
(raise 'huh? item))))
(cdr clause)))
|