5 src/builtins/cmp.pir - Perl6 comparison builtins
15 .sub 'infix:==' :multi(_,_)
19 .return 'prefix:?'($I0)
23 .sub 'infix:!==' :multi(_,_)
27 .return 'prefix:?'($I0)
30 # Shortcut for infix:!==, so same code
31 .sub 'infix:!=' :multi(_,_)
35 .return 'prefix:?'($I0)
39 .sub 'infix:<' :multi(_,_)
43 .return 'prefix:?'($I0)
47 .sub 'infix:<=' :multi(_,_)
51 .return 'prefix:?'($I0)
55 .sub 'infix:>' :multi(_,_)
59 .return 'prefix:?'($I0)
63 .sub 'infix:>=' :multi(_,_)
67 .return 'prefix:?'($I0)
75 if $I0 < 0 goto increase
76 if $I0 > 0 goto decrease
77 $P0 = get_hll_global ['Order'], 'Same'
80 $P0 = get_hll_global ['Order'], 'Increase'
83 $P0 = get_hll_global ['Order'], 'Decrease'
88 .sub 'infix:eq' :multi(_,_)
92 .return 'prefix:?'($I0)
95 .sub 'infix:!eq' :multi(_,_)
99 .return 'prefix:?'($I0)
103 .sub 'infix:ne' :multi(_,_)
107 .return 'prefix:?'($I0)
111 .sub 'infix:lt' :multi(_,_)
115 .return 'prefix:?'($I0)
119 .sub 'infix:le' :multi(_,_)
123 .return 'prefix:?'($I0)
127 .sub 'infix:gt' :multi(_,_)
131 .return 'prefix:?'($I0)
135 .sub 'infix:ge' :multi(_,_)
139 .return 'prefix:?'($I0)
147 ## Don't use a tailcall here due to RT#56448
148 $P0 = 'infix:<=>'($I0, 0)
157 ## Don't use a tailcall here due to RT#56448
158 $P0 = 'infix:<=>'($I0, 0)
163 .sub 'infix:===' :multi(_,_)
166 $I0 = '!SAMETYPE_EXACT'(a, b)
167 unless $I0 goto false
170 .return 'infix:==='($P0, $P1)
172 $P0 = get_hll_global [ 'Bool' ], 'False'
177 .sub 'infix:!===' :multi(_,_)
180 $P0 = 'infix:==='(a, b)
181 .return 'prefix:!'($P0)
196 # vim: expandtab shiftwidth=4 ft=pir: