[Wisp-cvs] wisp/modules/cpu ia32.wim,1.24,1.25
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2002-08-31 14:29:25
|
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))) |