| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- # blit & load elimination
- export
- function $f() {
- @start
- %x =l alloc4 12
- %y =l alloc4 12
- %x1 =l add 1, %x
- %x2 =l add 1, %x1
- %x3 =l add 1, %x2
- %x4 =l add 1, %x3
- %x5 =l add 1, %x4
- %x6 =l add 1, %x5
- %x7 =l add 1, %x6
- %x8 =l add 1, %x7
- %x9 =l add 1, %x8
- %xa =l add 1, %x9
- %xb =l add 1, %xa
- %y1 =l add 1, %y
- %y4 =l add 4, %y
-
- storew 287454020, %x4 # 0x11223344
- storew 1432778632, %y # 0x55667788
- blit %y, %x5, 1
- %n =w load %x4
- call $px(w %n) # 0x11228844
- storew 287454020, %x4 # 0x11223344
- storew 1432778632, %y # 0x55667788
- blit %y, %x5, 2
- %n =w load %x4
- call $px(w %n) # 0x11778844
- storew 287454020, %x4 # 0x11223344
- storew 1432778632, %y # 0x55667788
- blit %y, %x5, 4
- %n =w load %x4
- call $px(w %n) # 0x66778844
- storew 287454020, %x4 # 0x11223344
- storew 1432778632, %y # 0x55667788
- blit %y, %x2, 4
- %n =w load %x4
- call $px(w %n) # 0x11225566
- storew 287454020, %x4 # 0x11223344
- storew 0, %y
- storew 1432778632, %y4 # 0x55667788
- blit %y1, %x2, 7
- %n =w load %x4
- call $px(w %n) # 0x66778800
- ret
- }
- # >>> driver
- # #include <stdio.h>
- # void px(unsigned n) {
- # printf("0x%08x\n", n);
- # }
- # int main() {
- # extern void f(void);
- # f();
- # }
- # <<<
- # >>> output
- # 0x11228844
- # 0x11778844
- # 0x66778844
- # 0x11225566
- # 0x66778800
- # <<<
|