qbe

Internal scc patchset buffer for QBE
Log | Files | Refs | README | LICENSE

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 # <<<