22 lines
900 B
Factor
22 lines
900 B
Factor
USING: compiler.cfg.utilities compiler.codegen compiler.codegen.labels
|
|
compiler.constants cpu.architecture kernel make math tools.test ;
|
|
IN: compiler.codegen.tests
|
|
|
|
! useless-branch?
|
|
{ t f } [
|
|
{ } 0 insns>block { } 1 insns>block useless-branch?
|
|
{ } 0 insns>block { } 20 insns>block useless-branch?
|
|
] unit-test
|
|
|
|
|
|
{ } [ [ ] with-fixup drop ] unit-test
|
|
{ } [ [ \ + %call ] with-fixup drop ] unit-test
|
|
|
|
{ } [ [ <label> dup define-label dup resolve-label %jump-label ] with-fixup drop ] unit-test
|
|
{ } [ [ <label> dup define-label dup resolve-label B{ 0 0 0 0 } % rc-absolute-cell label-fixup ] with-fixup drop ] unit-test
|
|
|
|
! Error checking
|
|
[ [ <label> dup define-label %jump-label ] with-fixup ] must-fail
|
|
[ [ <label> dup define-label B{ 0 0 0 0 } % rc-relative label-fixup ] with-fixup ] must-fail
|
|
[ [ <label> dup define-label B{ 0 0 0 0 } % rc-absolute-cell label-fixup ] with-fixup ] must-fail
|