mirror of
				https://github.com/ton-blockchain/ton
				synced 2025-03-09 15:40:10 +00:00 
			
		
		
		
	* Implement compilation and pre-computation of logical operations (and, or, xor, not) * Fix emulate_and optimization * Fix variable flags in emulate_not * Rename co2.fc to co3.fc Co-authored-by: EmelyanenkoK <emelyanenko.kirill@gmail.com>
		
			
				
	
	
		
			24 lines
		
	
	
	
		
			703 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			703 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| const val1 = 123456789;
 | |
| const val2 = 987654321;
 | |
| const val3 = 135792468;
 | |
| const val4 = 246813579;
 | |
| 
 | |
| const prec_and = val1 & val2;
 | |
| const prec_or  = val1 | val2;
 | |
| const prec_xor = val1 ^ val2;
 | |
| const prec_logic = ((val1 & val2) | val3) ^ val4;
 | |
| const prec_nand = val1 & (~ val2);
 | |
| 
 | |
| int get_and()  { return prec_and; }
 | |
| int get_or() { return prec_or; }
 | |
| int get_xor() { return prec_xor; }
 | |
| int get_logic() { return prec_logic; }
 | |
| int get_nand() { return prec_nand; }
 | |
| 
 | |
| _ main() {
 | |
|     throw_unless(101, get_and() == 39471121);
 | |
|     throw_unless(102, get_or() == 1071639989);
 | |
|     throw_unless(103, get_xor() == 1032168868);
 | |
|     throw_unless(104, get_logic() == 82599134);
 | |
|     throw_unless(105, get_nand() == 83985668);
 | |
| }
 |