61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
USING: accessors compiler.cfg compiler.cfg.builder.blocks
 | 
						|
compiler.cfg.comparisons compiler.cfg.instructions
 | 
						|
compiler.cfg.intrinsics.fixnum compiler.cfg.registers
 | 
						|
compiler.cfg.utilities compiler.test cpu.architecture kernel make
 | 
						|
namespaces sequences ;
 | 
						|
IN: compiler.cfg.intrinsics.fixnum.tests
 | 
						|
 | 
						|
{
 | 
						|
    V{
 | 
						|
        T{ ##compare-integer
 | 
						|
           { dst 4 }
 | 
						|
           { src1 1 }
 | 
						|
           { src2 2 }
 | 
						|
           { cc cc> }
 | 
						|
           { temp 3 }
 | 
						|
        }
 | 
						|
    }
 | 
						|
} [
 | 
						|
    [ cc> emit-fixnum-comparison ] V{ } make
 | 
						|
] cfg-unit-test
 | 
						|
 | 
						|
{
 | 
						|
    V{
 | 
						|
        T{ ##compare-integer-imm-branch
 | 
						|
           { src1 1 }
 | 
						|
           { src2 0 }
 | 
						|
           { cc cc> }
 | 
						|
        }
 | 
						|
    }
 | 
						|
    108
 | 
						|
} [
 | 
						|
    V{ } 108 insns>block dup set-basic-block
 | 
						|
    emit-fixnum-shift-general
 | 
						|
    predecessors>> first predecessors>> first
 | 
						|
    [ instructions>> ] [ number>> ] bi
 | 
						|
] cfg-unit-test
 | 
						|
 | 
						|
{
 | 
						|
    V{
 | 
						|
        T{ ##copy
 | 
						|
           { dst 1 }
 | 
						|
           { src 321 }
 | 
						|
           { rep any-rep }
 | 
						|
        }
 | 
						|
        T{ ##inc { loc D: -1 } }
 | 
						|
        T{ ##branch }
 | 
						|
    }
 | 
						|
    77
 | 
						|
} [
 | 
						|
    321 V{ } 77 insns>block emit-no-overflow-case
 | 
						|
    first [ instructions>> ] [ predecessors>> first number>> ] bi
 | 
						|
] cfg-unit-test
 | 
						|
 | 
						|
{
 | 
						|
    V{ T{ ##call { word 2drop } } T{ ##branch } }
 | 
						|
    107
 | 
						|
} [
 | 
						|
    \ 2drop V{ } 107 insns>block emit-overflow-case
 | 
						|
    first [ instructions>> ] [ predecessors>> first number>> ] bi
 | 
						|
] cfg-unit-test
 |