1 USING: compiler.cfg.write-barrier compiler.cfg.instructions
2 compiler.cfg.registers compiler.cfg.debugger cpu.architecture
3 arrays tools.test vectors compiler.cfg kernel accessors ;
4 IN: compiler.cfg.write-barrier.tests
6 : test-write-barrier ( insns -- insns )
11 T{ ##peek f V int-regs 4 D 0 f }
12 T{ ##copy f V int-regs 6 V int-regs 4 f }
13 T{ ##allot f V int-regs 7 24 array V int-regs 8 f }
14 T{ ##load-immediate f V int-regs 9 8 f }
15 T{ ##set-slot-imm f V int-regs 9 V int-regs 7 1 3 f }
16 T{ ##set-slot-imm f V int-regs 6 V int-regs 7 2 3 f }
17 T{ ##replace f V int-regs 7 D 0 f }
21 T{ ##peek f V int-regs 4 D 0 }
22 T{ ##copy f V int-regs 6 V int-regs 4 }
23 T{ ##allot f V int-regs 7 24 array V int-regs 8 }
24 T{ ##load-immediate f V int-regs 9 8 }
25 T{ ##set-slot-imm f V int-regs 9 V int-regs 7 1 3 }
26 T{ ##write-barrier f V int-regs 7 V int-regs 10 V int-regs 11 }
27 T{ ##set-slot-imm f V int-regs 6 V int-regs 7 2 3 }
28 T{ ##write-barrier f V int-regs 7 V int-regs 12 V int-regs 13 }
29 T{ ##replace f V int-regs 7 D 0 }
35 T{ ##load-immediate f V int-regs 4 24 }
36 T{ ##peek f V int-regs 5 D -1 }
37 T{ ##peek f V int-regs 6 D -2 }
38 T{ ##set-slot-imm f V int-regs 5 V int-regs 6 3 2 }
39 T{ ##write-barrier f V int-regs 6 V int-regs 7 V int-regs 8 }
43 T{ ##load-immediate f V int-regs 4 24 }
44 T{ ##peek f V int-regs 5 D -1 }
45 T{ ##peek f V int-regs 6 D -2 }
46 T{ ##set-slot-imm f V int-regs 5 V int-regs 6 3 2 }
47 T{ ##write-barrier f V int-regs 6 V int-regs 7 V int-regs 8 }
53 T{ ##peek f V int-regs 19 D -3 }
54 T{ ##peek f V int-regs 22 D -2 }
55 T{ ##copy f V int-regs 23 V int-regs 19 }
56 T{ ##set-slot-imm f V int-regs 22 V int-regs 23 3 2 }
57 T{ ##write-barrier f V int-regs 23 V int-regs 24 V int-regs 25 }
58 T{ ##copy f V int-regs 26 V int-regs 19 }
59 T{ ##peek f V int-regs 28 D -1 }
60 T{ ##copy f V int-regs 29 V int-regs 19 }
61 T{ ##set-slot-imm f V int-regs 28 V int-regs 29 4 2 }
65 T{ ##peek f V int-regs 19 D -3 }
66 T{ ##peek f V int-regs 22 D -2 }
67 T{ ##copy f V int-regs 23 V int-regs 19 }
68 T{ ##set-slot-imm f V int-regs 22 V int-regs 23 3 2 }
69 T{ ##write-barrier f V int-regs 23 V int-regs 24 V int-regs 25 }
70 T{ ##copy f V int-regs 26 V int-regs 19 }
71 T{ ##peek f V int-regs 28 D -1 }
72 T{ ##copy f V int-regs 29 V int-regs 19 }
73 T{ ##set-slot-imm f V int-regs 28 V int-regs 29 4 2 }
74 T{ ##write-barrier f V int-regs 29 V int-regs 30 V int-regs 3 }