| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 |
- export
- function l $ifc1(l %v0, l %v1, w %c) {
- @start
- jnz %c, @true, @false
- @true
- %v =l copy %v1
- jmp @end
- @false
- %v =l copy %v0
- jmp @end
- @end
- ret %v
- }
- export
- function l $ifc2(l %v0, l %v1, w %p) {
- @start
- %c =w cnew %p, 42
- jnz %c, @true, @false
- @true
- %v =l copy %v1
- jmp @end
- @false
- %v =l copy %v0
- jmp @end
- @end
- ret %v
- }
- export
- function l $ifc3(l %v0, l %v1, w %p) {
- @start
- %c =w cugtw %p, 42
- jnz %c, @true, @false
- @true
- %v =l copy %v1
- jmp @end
- @false
- %v =l copy %v0
- jmp @end
- @end
- ret %v
- }
- export
- function l $ifclts(s %s0, s %s1, l %v0, l %v1) {
- @start
- %c =w clts %s0, %s1
- jnz %c, @true, @false
- @true
- %v =l copy %v1
- jmp @end
- @false
- %v =l copy %v0
- jmp @end
- @end
- ret %v
- }
- export
- function l $ifcles(s %s0, s %s1, l %v0, l %v1) {
- @start
- %c =w cles %s0, %s1
- jnz %c, @true, @false
- @true
- %v =l copy %v1
- jmp @end
- @false
- %v =l copy %v0
- jmp @end
- @end
- ret %v
- }
- export
- function l $ifcgts(s %s0, s %s1, l %v0, l %v1) {
- @start
- %c =w cgts %s0, %s1
- jnz %c, @true, @false
- @true
- %v =l copy %v1
- jmp @end
- @false
- %v =l copy %v0
- jmp @end
- @end
- ret %v
- }
- export
- function l $ifcges(s %s0, s %s1, l %v0, l %v1) {
- @start
- %c =w cges %s0, %s1
- jnz %c, @true, @false
- @true
- %v =l copy %v1
- jmp @end
- @false
- %v =l copy %v0
- jmp @end
- @end
- ret %v
- }
- export
- function l $ifceqs(s %s0, s %s1, l %v0, l %v1) {
- @start
- %c =w ceqs %s0, %s1
- jnz %c, @true, @false
- @true
- %v =l copy %v1
- jmp @end
- @false
- %v =l copy %v0
- jmp @end
- @end
- ret %v
- }
- export
- function l $ifcnes(s %s0, s %s1, l %v0, l %v1) {
- @start
- %c =w cnes %s0, %s1
- jnz %c, @true, @false
- @true
- %v =l copy %v1
- jmp @end
- @false
- %v =l copy %v0
- jmp @end
- @end
- ret %v
- }
- export
- function l $ifcos(s %s0, s %s1, l %v0, l %v1) {
- @start
- %c =w cos %s0, %s1
- jnz %c, @true, @false
- @true
- %v =l copy %v1
- jmp @end
- @false
- %v =l copy %v0
- jmp @end
- @end
- ret %v
- }
- export
- function l $ifcuos(s %s0, s %s1, l %v0, l %v1) {
- @start
- %c =w cuos %s0, %s1
- jnz %c, @true, @false
- @true
- %v =l copy %v1
- jmp @end
- @false
- %v =l copy %v0
- jmp @end
- @end
- ret %v
- }
- # >>> driver
- # extern long ifc1(long, long, int);
- # extern long ifc2(long, long, int);
- # extern long ifc3(long, long, int);
- # extern long ifclts(float, float, long, long);
- # extern long ifcles(float, float, long, long);
- # extern long ifcgts(float, float, long, long);
- # extern long ifcges(float, float, long, long);
- # extern long ifceqs(float, float, long, long);
- # extern long ifcnes(float, float, long, long);
- # extern long ifcos(float, float, long, long);
- # extern long ifcuos(float, float, long, long);
- # int main() {
- # return
- # ifc1(7, 5, 0) != 7
- # || ifc1(7, 5, 1) != 5
- # || ifc1(7, 5, 33) != 5
- # || ifc2(7, 5, 42) != 7
- # || ifc2(7, 5, 41) != 5
- # || ifc2(7, 5, 43) != 5
- # || ifc3(7, 5, 42) != 7
- # || ifc3(7, 5, 41) != 7
- # || ifc3(7, 5, 43) != 5
- # || ifclts(5.0f, 6.0f, 7, 5) != 5
- # || ifclts(5.0f, 5.0f, 7, 5) != 7
- # || ifclts(5.0f, 4.0f, 7, 5) != 7
- # || ifclts(5.0f, 0.0f/0.0f, 7, 5) != 7
- # || ifclts(0.0f/0.0f, 5.0f, 7, 5) != 7
- # || ifclts(0.0f/0.0f, 0.0f/0.0f, 7, 5) != 7
- # || ifcles(5.0f, 6.0f, 7, 5) != 5
- # || ifcles(5.0f, 5.0f, 7, 5) != 5
- # || ifcles(5.0f, 4.0f, 7, 5) != 7
- # || ifcles(5.0f, 0.0f/0.0f, 7, 5) != 7
- # || ifcles(0.0f/0.0f, 5.0f, 7, 5) != 7
- # || ifcles(0.0f/0.0f, 0.0f/0.0f, 7, 5) != 7
- # || ifcgts(5.0f, 6.0f, 7, 5) != 7
- # || ifcgts(5.0f, 5.0f, 7, 5) != 7
- # || ifcgts(5.0f, 4.0f, 7, 5) != 5
- # || ifcgts(5.0f, 0.0f/0.0f, 7, 5) != 7
- # || ifcgts(0.0f/0.0f, 5.0f, 7, 5) != 7
- # || ifcgts(0.0f/0.0f, 0.0f/0.0f, 7, 5) != 7
- # || ifcges(5.0f, 6.0f, 7, 5) != 7
- # || ifcges(5.0f, 5.0f, 7, 5) != 5
- # || ifcges(5.0f, 4.0f, 7, 5) != 5
- # || ifcges(5.0f, 0.0f/0.0f, 7, 5) != 7
- # || ifcges(0.0f/0.0f, 5.0f, 7, 5) != 7
- # || ifcges(0.0f/0.0f, 0.0f/0.0f, 7, 5) != 7
- # || ifceqs(5.0f, 6.0f, 7, 5) != 7
- # || ifceqs(5.0f, 5.0f, 7, 5) != 5
- # || ifceqs(5.0f, 4.0f, 7, 5) != 7
- # || ifceqs(5.0f, 0.0f/0.0f, 7, 5) != 7
- # || ifceqs(0.0f/0.0f, 5.0f, 7, 5) != 7
- # || ifceqs(0.0f/0.0f, 0.0f/0.0f, 7, 5) != 7
- # || ifcnes(5.0f, 6.0f, 7, 5) != 5
- # || ifcnes(5.0f, 5.0f, 7, 5) != 7
- # || ifcnes(5.0f, 4.0f, 7, 5) != 5
- # || ifcnes(5.0f, 0.0f/0.0f, 7, 5) != 5
- # || ifcnes(0.0f/0.0f, 5.0f, 7, 5) != 5
- # || ifcnes(0.0f/0.0f, 0.0f/0.0f, 7, 5) != 5
- # || ifcos(5.0f, 6.0f, 7, 5) != 5
- # || ifcos(5.0f, 5.0f, 7, 5) != 5
- # || ifcos(5.0f, 4.0f, 7, 5) != 5
- # || ifcos(5.0f, 0.0f/0.0f, 7, 5) != 7
- # || ifcos(0.0f/0.0f, 5.0f, 7, 5) != 7
- # || ifcos(0.0f/0.0f, 0.0f/0.0f, 7, 5) != 7
- # || ifcuos(5.0f, 6.0f, 7, 5) != 7
- # || ifcuos(5.0f, 5.0f, 7, 5) != 7
- # || ifcuos(5.0f, 4.0f, 7, 5) != 7
- # || ifcuos(5.0f, 0.0f/0.0f, 7, 5) != 5
- # || ifcuos(0.0f/0.0f, 5.0f, 7, 5) != 5
- # || ifcuos(0.0f/0.0f, 0.0f/0.0f, 7, 5) != 5
- # ;
- # }
- # <<<
|