* adding some asm tests in asm-tests.ss

This commit is contained in:
Abdulaziz Ghuloum 2007-02-13 05:08:48 -05:00
parent a123a77bbc
commit 297e47db32
8 changed files with 139 additions and 61 deletions

View File

@ -1,6 +1,6 @@
CFLAGS = -I/opt/local/include -Wall -DNDEBUG -O3 #-fomit-frame-pointer #CFLAGS = -I/opt/local/include -Wall -DNDEBUG -O3 #-fomit-frame-pointer
#CFLAGS = -I/opt/local/include -Wall -g CFLAGS = -I/opt/local/include -Wall -g
LDFLAGS = -L/opt/local/lib -g -ldl -lgmp #-rdynamic LDFLAGS = -L/opt/local/lib -g -ldl -lgmp #-rdynamic
CC = gcc CC = gcc
all: ikarus all: ikarus

Binary file not shown.

57
src/asm-tests.ss Normal file
View File

@ -0,0 +1,57 @@
(define (asm-test res ls)
(printf "Testing:\n")
(for-each (lambda (x)
(printf " ~s\n" x))
ls)
(let ([code
(car (#%list*->code*
(lambda (x) #f)
`([0 (label ,(gensym)) . ,ls])))])
(let ([proc (#%$code->closure code)])
(let ([v (proc)])
(unless (equal? v res)
(printf "failed!\n")
(error 'test-asm "expected ~s, got ~s" res v)))))
(printf "OK\n\n"))
(asm-test 12
'([movl 48 %eax]
[ret]))
(asm-test 12
'([movl 16 %eax]
[orl 32 %eax]
[ret]))
(asm-test 12
'([movl 48 %eax]
[movl %eax (disp -4 %esp)]
[movl 0 %eax]
[movl (disp -4 %esp) %eax]
[ret]))