mirror of
https://github.com/justinethier/cyclone.git
synced 2025-05-19 05:39:17 +02:00
WIP
This commit is contained in:
parent
67e63ef49c
commit
b438de64f1
1 changed files with 495 additions and 0 deletions
|
@ -8,3 +8,498 @@
|
|||
(pt-body source body env use)
|
||||
(let* ((vars-set (car order)) (vars (set->list vars-set)))
|
||||
(write `(INNER DEBUG ,vars-set ,vars))
|
||||
ERROR: returned incorrect result: (
|
||||
"|------------------------------------------------------"
|
||||
"| #[primitive #!program] ="
|
||||
"L1:"
|
||||
" cmpw #1,d0"
|
||||
" beq L1000"
|
||||
" TRAP1(9,0)"
|
||||
" LBL_PTR(L1)"
|
||||
"L1000:"
|
||||
" MOVE_PROC(2,a1)"
|
||||
" movl a1,GLOB(fib)"
|
||||
" MOVE_PROC(3,a1)"
|
||||
" movl a1,GLOB(tak)"
|
||||
" MOVE_PROC(4,a1)"
|
||||
" movl a1,GLOB(ack)"
|
||||
" MOVE_PROC(5,a1)"
|
||||
" movl a1,GLOB(create-x)"
|
||||
" MOVE_PROC(6,a1)"
|
||||
" movl a1,GLOB(create-y)"
|
||||
" MOVE_PROC(7,a1)"
|
||||
" movl a1,GLOB(my-try)"
|
||||
" MOVE_PROC(8,a1)"
|
||||
" movl a1,GLOB(go)"
|
||||
" movl a0,sp@-"
|
||||
" movl #160,d1"
|
||||
" lea L2,a0"
|
||||
" dbra d5,L1001"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1001"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,1,1)"
|
||||
"L1002:"
|
||||
"L1001:"
|
||||
" JMP_PROC(1,10)"
|
||||
" RETURN(L1,1,1)"
|
||||
"L2:"
|
||||
" movl d1,sp@-"
|
||||
" moveq #48,d3"
|
||||
" moveq #96,d2"
|
||||
" movl #144,d1"
|
||||
" lea L3,a0"
|
||||
" JMP_PROC(2,14)"
|
||||
" RETURN(L1,2,1)"
|
||||
"L3:"
|
||||
" movl d1,sp@-"
|
||||
" moveq #72,d2"
|
||||
" moveq #24,d1"
|
||||
" lea L4,a0"
|
||||
" JMP_PROC(3,10)"
|
||||
" RETURN(L1,3,1)"
|
||||
"L4:"
|
||||
" movl d1,sp@-"
|
||||
" movl #1600000,d1"
|
||||
" lea L5,a0"
|
||||
" JMP_PROC(7,10)"
|
||||
" RETURN(L1,4,1)"
|
||||
"L5:"
|
||||
" dbra d5,L1003"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1003"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,4,1)"
|
||||
"L1004:"
|
||||
"L1003:"
|
||||
"L6:"
|
||||
" addl sp@(8),d1"
|
||||
" addl sp@(4),d1"
|
||||
" addl sp@+,d1"
|
||||
" rts"
|
||||
"L0:"
|
||||
"|------------------------------------------------------"
|
||||
"| #[primitive fib] ="
|
||||
"L1:"
|
||||
" bmi L1000"
|
||||
" TRAP1(9,1)"
|
||||
" LBL_PTR(L1)"
|
||||
"L1000:"
|
||||
" moveq #16,d0"
|
||||
" cmpl d1,d0"
|
||||
" ble L3"
|
||||
" bra L4"
|
||||
" RETURN(L1,2,1)"
|
||||
"L2:"
|
||||
" movl d1,sp@-"
|
||||
" movl sp@(4),d1"
|
||||
" moveq #-16,d0"
|
||||
" addl d0,d1"
|
||||
" lea L5,a0"
|
||||
" moveq #16,d0"
|
||||
" cmpl d1,d0"
|
||||
" bgt L4"
|
||||
"L3:"
|
||||
" movl a0,sp@-"
|
||||
" movl d1,sp@-"
|
||||
" subql #8,d1"
|
||||
" lea L2,a0"
|
||||
" dbra d5,L1001"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1001"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,2,1)"
|
||||
"L1002:"
|
||||
"L1001:"
|
||||
" moveq #16,d0"
|
||||
" cmpl d1,d0"
|
||||
" ble L3"
|
||||
"L4:"
|
||||
" jmp a0@"
|
||||
" RETURN(L1,3,1)"
|
||||
"L5:"
|
||||
" addl sp@+,d1"
|
||||
" dbra d5,L1003"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1003"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,2,1)"
|
||||
"L1004:"
|
||||
"L1003:"
|
||||
" rts"
|
||||
"L0:"
|
||||
"|------------------------------------------------------"
|
||||
"| #[primitive tak] ="
|
||||
"L1:"
|
||||
" cmpw #4,d0"
|
||||
" beq L1000"
|
||||
" TRAP1(9,3)"
|
||||
" LBL_PTR(L1)"
|
||||
"L1000:"
|
||||
" cmpl d1,d2"
|
||||
" bge L4"
|
||||
" bra L3"
|
||||
" RETURN(L1,6,1)"
|
||||
"L2:"
|
||||
" movl d1,d3"
|
||||
" movl sp@(20),a0"
|
||||
" movl sp@+,d2"
|
||||
" movl sp@+,d1"
|
||||
" dbra d5,L1001"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1001"
|
||||
" movl a0,sp@(12)"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,4,1)"
|
||||
"L1002:"
|
||||
" movl sp@(12),a0"
|
||||
"L1001:"
|
||||
" cmpl d1,d2"
|
||||
" bge L4"
|
||||
"L3:"
|
||||
" movl a0,sp@-"
|
||||
" movl d1,sp@-"
|
||||
" movl d2,sp@-"
|
||||
" movl d3,sp@-"
|
||||
" subql #8,d1"
|
||||
" lea L5,a0"
|
||||
" dbra d5,L1003"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1003"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,4,1)"
|
||||
"L1004:"
|
||||
"L1003:"
|
||||
" cmpl d1,d2"
|
||||
" blt L3"
|
||||
"L4:"
|
||||
" movl d3,d1"
|
||||
" jmp a0@"
|
||||
" RETURN(L1,4,1)"
|
||||
"L5:"
|
||||
" movl d1,sp@-"
|
||||
" movl sp@(12),d3"
|
||||
" movl sp@(4),d2"
|
||||
" movl sp@(8),d1"
|
||||
" subql #8,d1"
|
||||
" lea L6,a0"
|
||||
" cmpl d1,d2"
|
||||
" bge L4"
|
||||
" bra L3"
|
||||
" RETURN(L1,5,1)"
|
||||
"L6:"
|
||||
" movl d1,sp@-"
|
||||
" movl sp@(12),d3"
|
||||
" movl sp@(16),d2"
|
||||
" movl sp@(8),d1"
|
||||
" subql #8,d1"
|
||||
" lea L2,a0"
|
||||
" cmpl d1,d2"
|
||||
" bge L4"
|
||||
" bra L3"
|
||||
"L0:"
|
||||
"|------------------------------------------------------"
|
||||
"| #[primitive ack] ="
|
||||
"L1:"
|
||||
" beq L1000"
|
||||
" TRAP1(9,2)"
|
||||
" LBL_PTR(L1)"
|
||||
"L1000:"
|
||||
" movl d1,d0"
|
||||
" bne L3"
|
||||
" bra L5"
|
||||
" RETURN(L1,2,1)"
|
||||
"L2:"
|
||||
" movl d1,d2"
|
||||
" movl sp@+,d1"
|
||||
" subql #8,d1"
|
||||
" movl sp@+,a0"
|
||||
" dbra d5,L1001"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1001"
|
||||
" movl a0,sp@-"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,1,1)"
|
||||
"L1002:"
|
||||
" movl sp@+,a0"
|
||||
"L1001:"
|
||||
" movl d1,d0"
|
||||
" beq L5"
|
||||
"L3:"
|
||||
" movl d2,d0"
|
||||
" bne L6"
|
||||
"L4:"
|
||||
" subql #8,d1"
|
||||
" moveq #8,d2"
|
||||
" dbra d5,L1003"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1003"
|
||||
" movl a0,sp@-"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,1,1)"
|
||||
"L1004:"
|
||||
" movl sp@+,a0"
|
||||
"L1003:"
|
||||
" movl d1,d0"
|
||||
" bne L3"
|
||||
"L5:"
|
||||
" movl d2,d1"
|
||||
" addql #8,d1"
|
||||
" jmp a0@"
|
||||
"L6:"
|
||||
" movl a0,sp@-"
|
||||
" movl d1,sp@-"
|
||||
" movl d2,d1"
|
||||
" subql #8,d1"
|
||||
" movl d1,d2"
|
||||
" movl sp@,d1"
|
||||
" lea L2,a0"
|
||||
" dbra d5,L1005"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1005"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,2,1)"
|
||||
"L1006:"
|
||||
"L1005:"
|
||||
" movl d1,d0"
|
||||
" bne L3"
|
||||
" bra L5"
|
||||
"L0:"
|
||||
"|------------------------------------------------------"
|
||||
"| #[primitive create-x] ="
|
||||
"L1:"
|
||||
" bmi L1000"
|
||||
" TRAP1(9,1)"
|
||||
" LBL_PTR(L1)"
|
||||
"L1000:"
|
||||
" movl a0,sp@-"
|
||||
" movl d1,sp@-"
|
||||
" lea L2,a0"
|
||||
" dbra d5,L1001"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1001"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,2,1)"
|
||||
"L1002:"
|
||||
"L1001:"
|
||||
" moveq #-1,d0"
|
||||
" JMP_PRIM(make-vector,0)"
|
||||
" RETURN(L1,2,1)"
|
||||
"L2:"
|
||||
" movl d1,d2"
|
||||
" movl sp@+,d1"
|
||||
" moveq #0,d3"
|
||||
" movl sp@+,a0"
|
||||
" dbra d5,L1003"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1003"
|
||||
" movl a0,sp@-"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,1,1)"
|
||||
"L1004:"
|
||||
" movl sp@+,a0"
|
||||
"L1003:"
|
||||
" cmpl d1,d3"
|
||||
" bge L4"
|
||||
"L3:"
|
||||
" movl d3,d0"
|
||||
" asrl #1,d0"
|
||||
" movl d2,a1"
|
||||
" movl d3,a1@(1,d0:l)"
|
||||
" addql #8,d3"
|
||||
" dbra d5,L1005"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1005"
|
||||
" movl a0,sp@-"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,1,1)"
|
||||
"L1006:"
|
||||
" movl sp@+,a0"
|
||||
"L1005:"
|
||||
" cmpl d1,d3"
|
||||
" blt L3"
|
||||
"L4:"
|
||||
" movl d2,d1"
|
||||
" jmp a0@"
|
||||
"L0:"
|
||||
"|------------------------------------------------------"
|
||||
"| #[primitive create-y] ="
|
||||
"L1:"
|
||||
" bmi L1000"
|
||||
" TRAP1(9,1)"
|
||||
" LBL_PTR(L1)"
|
||||
"L1000:"
|
||||
" movl d1,a1"
|
||||
" movl a1@(-3),d2"
|
||||
" lsrl #7,d2"
|
||||
" movl a0,sp@-"
|
||||
" movl d1,sp@-"
|
||||
" movl d2,sp@-"
|
||||
" movl d2,d1"
|
||||
" lea L2,a0"
|
||||
" dbra d5,L1001"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1001"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,3,1)"
|
||||
"L1002:"
|
||||
"L1001:"
|
||||
" moveq #-1,d0"
|
||||
" JMP_PRIM(make-vector,0)"
|
||||
" RETURN(L1,3,1)"
|
||||
"L2:"
|
||||
" movl sp@+,d2"
|
||||
" subql #8,d2"
|
||||
" movl d2,d3"
|
||||
" movl d1,d2"
|
||||
" movl sp@+,d1"
|
||||
" movl sp@+,a0"
|
||||
" dbra d5,L1003"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1003"
|
||||
" movl a0,sp@-"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,1,1)"
|
||||
"L1004:"
|
||||
" movl sp@+,a0"
|
||||
"L1003:"
|
||||
" movl d3,d0"
|
||||
" blt L4"
|
||||
"L3:"
|
||||
" movl d3,d0"
|
||||
" asrl #1,d0"
|
||||
" movl d1,a1"
|
||||
" movl a1@(1,d0:l),d4"
|
||||
" movl d3,d0"
|
||||
" asrl #1,d0"
|
||||
" movl d2,a1"
|
||||
" movl d4,a1@(1,d0:l)"
|
||||
" subql #8,d3"
|
||||
" dbra d5,L1005"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1005"
|
||||
" movl a0,sp@-"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,1,1)"
|
||||
"L1006:"
|
||||
" movl sp@+,a0"
|
||||
"L1005:"
|
||||
" movl d3,d0"
|
||||
" bge L3"
|
||||
"L4:"
|
||||
" movl d2,d1"
|
||||
" jmp a0@"
|
||||
"L0:"
|
||||
"|------------------------------------------------------"
|
||||
"| #[primitive my-try] ="
|
||||
"L1:"
|
||||
" bmi L1000"
|
||||
" TRAP1(9,1)"
|
||||
" LBL_PTR(L1)"
|
||||
"L1000:"
|
||||
" movl a0,sp@-"
|
||||
" lea L2,a0"
|
||||
" dbra d5,L1001"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1001"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,1,1)"
|
||||
"L1002:"
|
||||
"L1001:"
|
||||
" JMP_PROC(4,10)"
|
||||
" RETURN(L1,1,1)"
|
||||
"L2:"
|
||||
" lea L3,a0"
|
||||
" JMP_PROC(5,10)"
|
||||
" RETURN(L1,1,1)"
|
||||
"L3:"
|
||||
" movl d1,a1"
|
||||
" movl a1@(-3),d1"
|
||||
" lsrl #7,d1"
|
||||
" dbra d5,L1003"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1003"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,1,1)"
|
||||
"L1004:"
|
||||
"L1003:"
|
||||
" rts"
|
||||
"L0:"
|
||||
"|------------------------------------------------------"
|
||||
"| #[primitive go] ="
|
||||
"L1:"
|
||||
" bmi L1000"
|
||||
" TRAP1(9,1)"
|
||||
" LBL_PTR(L1)"
|
||||
"L1000:"
|
||||
" moveq #0,d3"
|
||||
" movl #800,d2"
|
||||
" dbra d5,L1001"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1001"
|
||||
" movl a0,sp@-"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,1,1)"
|
||||
"L1002:"
|
||||
" movl sp@+,a0"
|
||||
"L1001:"
|
||||
" movl d2,d0"
|
||||
" ble L4"
|
||||
" bra L3"
|
||||
" RETURN(L1,3,1)"
|
||||
"L2:"
|
||||
" movl d1,d3"
|
||||
" movl sp@+,d1"
|
||||
" subql #8,d1"
|
||||
" movl d1,d2"
|
||||
" movl sp@+,d1"
|
||||
" movl sp@+,a0"
|
||||
" dbra d5,L1003"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1003"
|
||||
" movl a0,sp@-"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,1,1)"
|
||||
"L1004:"
|
||||
" movl sp@+,a0"
|
||||
"L1003:"
|
||||
" movl d2,d0"
|
||||
" ble L4"
|
||||
"L3:"
|
||||
" movl a0,sp@-"
|
||||
" movl d1,sp@-"
|
||||
" movl d2,sp@-"
|
||||
" lea L2,a0"
|
||||
" dbra d5,L1005"
|
||||
" moveq #9,d5"
|
||||
" cmpl a5@,sp"
|
||||
" bcc L1005"
|
||||
" TRAP2(24)"
|
||||
" RETURN(L1,3,1)"
|
||||
"L1006:"
|
||||
"L1005:"
|
||||
" JMP_PROC(6,10)"
|
||||
"L4:"
|
||||
" movl d3,d1"
|
||||
" jmp a0@"
|
||||
"L0:"
|
||||
"")
|
||||
|
|
Loading…
Add table
Reference in a new issue