mem1.ssa 570 B

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