43 - tests for 'deref' and 'copy'
This commit is contained in:
parent
fa234f9a86
commit
52c3822e08
21
mu.arc.t
21
mu.arc.t
|
@ -295,6 +295,27 @@
|
|||
(if (~iso memory* (obj 1 2 2 4 3 nil 4 3))
|
||||
(prn "F - 'jif' can take a negative offset to make backward jumps"))
|
||||
|
||||
(clear)
|
||||
(add-fns
|
||||
'((main
|
||||
((1 integer) <- literal 34)
|
||||
((2 integer) <- copy (1 integer)))))
|
||||
(run function*!main)
|
||||
;? (prn memory*)
|
||||
(if (~iso memory* (obj 1 34 2 34))
|
||||
(prn "F - 'copy' performs direct addressing"))
|
||||
|
||||
(clear)
|
||||
(add-fns
|
||||
'((main
|
||||
((1 integer-address) <- literal 2)
|
||||
((2 integer) <- literal 34)
|
||||
((3 integer) <- deref (1 integer-address)))))
|
||||
(run function*!main)
|
||||
;? (prn memory*)
|
||||
(if (~iso memory* (obj 1 2 2 34 3 34))
|
||||
(prn "F - 'deref' performs indirect addressing"))
|
||||
|
||||
(clear)
|
||||
(add-fns
|
||||
'((test1
|
||||
|
|
8
new.mu
8
new.mu
|
@ -1,14 +1,14 @@
|
|||
; memory map: 1-1000 reserved for the (currently non-reentrant) allocator
|
||||
(main
|
||||
((1 integer) <- literal 1000) ; location 1 contains the high-water mark for the memory allocator
|
||||
((4 integer-pointer) <- new)
|
||||
((5 integer) <- deref (4 integer-pointer))
|
||||
((4 integer-address) <- new)
|
||||
((5 integer) <- deref (4 integer-address))
|
||||
)
|
||||
|
||||
(new
|
||||
((2 integer-pointer) <- copy (1 integer))
|
||||
((2 integer-address) <- copy (1 integer))
|
||||
((3 integer) <- literal 1)
|
||||
((1 integer) <- add (1 integer) (3 integer))
|
||||
(reply (2 integer-pointer)))
|
||||
(reply (2 integer-address)))
|
||||
|
||||
;; vim:ft=scheme
|
||||
|
|
Loading…
Reference in New Issue