2008-10-22 19:41:10 -04:00
|
|
|
USING: compiler.cfg.write-barrier compiler.cfg.instructions
|
2008-12-08 15:58:00 -05:00
|
|
|
compiler.cfg.registers compiler.cfg.debugger cpu.architecture
|
2009-07-24 07:08:07 -04:00
|
|
|
arrays tools.test vectors compiler.cfg kernel accessors
|
|
|
|
compiler.cfg.utilities ;
|
2008-10-22 19:41:10 -04:00
|
|
|
IN: compiler.cfg.write-barrier.tests
|
|
|
|
|
2009-05-26 20:31:19 -04:00
|
|
|
: test-write-barrier ( insns -- insns )
|
2009-07-24 07:08:07 -04:00
|
|
|
<simple-block> dup write-barriers-step instructions>> ;
|
2009-05-26 20:31:19 -04:00
|
|
|
|
2008-10-22 19:41:10 -04:00
|
|
|
[
|
2009-07-24 07:08:07 -04:00
|
|
|
V{
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##peek f 4 D 0 f }
|
|
|
|
T{ ##allot f 7 24 array 8 f }
|
|
|
|
T{ ##load-immediate f 9 8 f }
|
|
|
|
T{ ##set-slot-imm f 9 7 1 3 f }
|
|
|
|
T{ ##set-slot-imm f 4 7 2 3 f }
|
|
|
|
T{ ##replace f 7 D 0 f }
|
2009-07-24 07:08:07 -04:00
|
|
|
T{ ##branch }
|
2008-10-22 19:41:10 -04:00
|
|
|
}
|
|
|
|
] [
|
|
|
|
{
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##peek f 4 D 0 }
|
|
|
|
T{ ##allot f 7 24 array 8 }
|
|
|
|
T{ ##load-immediate f 9 8 }
|
|
|
|
T{ ##set-slot-imm f 9 7 1 3 }
|
|
|
|
T{ ##write-barrier f 7 10 11 }
|
|
|
|
T{ ##set-slot-imm f 4 7 2 3 }
|
|
|
|
T{ ##write-barrier f 7 12 13 }
|
|
|
|
T{ ##replace f 7 D 0 }
|
2009-05-26 20:31:19 -04:00
|
|
|
} test-write-barrier
|
2008-10-22 19:41:10 -04:00
|
|
|
] unit-test
|
|
|
|
|
|
|
|
[
|
2009-07-24 07:08:07 -04:00
|
|
|
V{
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##load-immediate f 4 24 }
|
|
|
|
T{ ##peek f 5 D -1 }
|
|
|
|
T{ ##peek f 6 D -2 }
|
|
|
|
T{ ##set-slot-imm f 5 6 3 2 }
|
|
|
|
T{ ##write-barrier f 6 7 8 }
|
2009-07-24 07:08:07 -04:00
|
|
|
T{ ##branch }
|
2008-10-22 19:41:10 -04:00
|
|
|
}
|
|
|
|
] [
|
|
|
|
{
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##load-immediate f 4 24 }
|
|
|
|
T{ ##peek f 5 D -1 }
|
|
|
|
T{ ##peek f 6 D -2 }
|
|
|
|
T{ ##set-slot-imm f 5 6 3 2 }
|
|
|
|
T{ ##write-barrier f 6 7 8 }
|
2009-05-26 20:31:19 -04:00
|
|
|
} test-write-barrier
|
2008-10-22 19:41:10 -04:00
|
|
|
] unit-test
|
|
|
|
|
|
|
|
[
|
2009-07-24 07:08:07 -04:00
|
|
|
V{
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##peek f 19 D -3 }
|
|
|
|
T{ ##peek f 22 D -2 }
|
|
|
|
T{ ##set-slot-imm f 22 19 3 2 }
|
|
|
|
T{ ##write-barrier f 19 24 25 }
|
|
|
|
T{ ##peek f 28 D -1 }
|
|
|
|
T{ ##set-slot-imm f 28 19 4 2 }
|
2009-07-24 07:08:07 -04:00
|
|
|
T{ ##branch }
|
2008-10-22 19:41:10 -04:00
|
|
|
}
|
|
|
|
] [
|
|
|
|
{
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##peek f 19 D -3 }
|
|
|
|
T{ ##peek f 22 D -2 }
|
|
|
|
T{ ##set-slot-imm f 22 19 3 2 }
|
|
|
|
T{ ##write-barrier f 19 24 25 }
|
|
|
|
T{ ##peek f 28 D -1 }
|
|
|
|
T{ ##set-slot-imm f 28 19 4 2 }
|
|
|
|
T{ ##write-barrier f 19 30 3 }
|
2009-05-26 20:31:19 -04:00
|
|
|
} test-write-barrier
|
2008-10-22 19:41:10 -04:00
|
|
|
] unit-test
|