mem1.ssa (570B)
1 type :i3 = { w 3 } 2 3 export 4 function :i3 $blit() { 5 @start 6 %l0 =l alloc4 12 7 %l1 =l alloc4 12 8 9 storew 287454020, %l0 10 %l04 =l add %l0, 4 11 storew 1432778632, %l04 12 %l08 =l add %l0, 8 13 storew 2578103244, %l08 14 15 # we expect that %l0 and %l1 16 # are coalesced and the blit 17 # goes backwards 18 %l11 =l add %l1, 1 19 blit %l0, %l11, 11 20 21 storeb 221, %l1 22 23 ret %l1 24 } 25 26 # >>> driver 27 # struct i3 { int a, b, c; }; 28 # extern struct i3 blit(); 29 # int main() { 30 # struct i3 s = blit(); 31 # return !(s.a == 0x223344dd 32 # && s.b == 0x66778811 33 # && s.c == 0xaabbcc55); 34 # } 35 # <<<