File tree Expand file tree Collapse file tree 4 files changed +54
-10
lines changed Expand file tree Collapse file tree 4 files changed +54
-10
lines changed Original file line number Diff line number Diff line change 1
1
[package ]
2
2
name = " lambda_mountain"
3
- version = " 1.11.80 "
3
+ version = " 1.11.81 "
4
4
authors = [" Andrew <andrew@subarctic.org>" ]
5
5
license = " MIT"
6
6
description = " Lambda Mountain"
Original file line number Diff line number Diff line change @@ -54,15 +54,26 @@ fragment push := λ(: src GlobalVariable+Sized<size>). (: (
54
54
))
55
55
) Nil);
56
56
fragment push := λ(: src LocalVariable+Sized<size>). (: (
57
- (.program ( for word-offset in (range( 0 (/( size 8 )) )) (
58
- \t 'pushq \s (+(
59
- (.expression src)
60
- (+(
61
- (+( size '-8 ))
62
- (inv(*( word-offset 8 )))
63
- ))
64
- )) \[ '%rbp \] \n
65
- )))
57
+ (.program (
58
+ (for word-offset in (range( 0 (/( size 8 )) )) (
59
+ \t 'pushq \s (+(
60
+ (.expression src)
61
+ (+(
62
+ (+( size '-8 ))
63
+ (inv(*( word-offset 8 )))
64
+ ))
65
+ )) \[ '%rbp \] \n
66
+ ))
67
+ (if-eq size 4 (
68
+ \t 'pushq \s (.expression src) \[ '%rbp \] \n
69
+ ))
70
+ (if-eq size 2 (
71
+ \t 'pushq \s (.expression src) \[ '%rbp \] \n
72
+ ))
73
+ (if-eq size 1 (
74
+ \t 'pushq \s (.expression src) \[ '%rbp \] \n
75
+ ))
76
+ ))
66
77
) Nil);
67
78
fragment pop := λ(: src LocalVariable+Sized<size>). (: (
68
79
(.program ( for word-offset in (range( 1 (+( (/( size 8 )) 1 )) )) (
Original file line number Diff line number Diff line change @@ -14,6 +14,7 @@ main := (tail(
14
14
(print x)(print y)(print \n_s)
15
15
(if (==( x y )) (print 'Failure\n_s) (print 'ZeroNotEqualOne\n_s) )
16
16
))
17
+ ()
17
18
(tail(
18
19
(let x 0u16)
19
20
(let y 0u16)
Original file line number Diff line number Diff line change
1
+ 00
2
+ ZeroEqZero
3
+ 01
4
+ ZeroNotEqualOne
5
+ 00
6
+ ZeroEqZero
7
+ 01
8
+ ZeroNotEqualOne
9
+ 00
10
+ ZeroEqZero
11
+ 01
12
+ ZeroNotEqualOne
13
+ 00
14
+ ZeroEqZero
15
+ 01
16
+ ZeroNotEqualOne
17
+ 00
18
+ ZeroEqZero
19
+ 01
20
+ ZeroNotEqualOne
21
+ 00
22
+ ZeroEqZero
23
+ 01
24
+ ZeroNotEqualOne
25
+ 00
26
+ ZeroEqZero
27
+ 01
28
+ ZeroNotEqualOne
29
+ 00
30
+ ZeroEqZero
31
+ 01
32
+ ZeroNotEqualOne
You can’t perform that action at this time.
0 commit comments