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
 |