mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	Adjustments for the NEG->BNOT change.
This commit is contained in:
		
							parent
							
								
									2541a403c3
								
							
						
					
					
						commit
						f91ddc2788
					
				
							
								
								
									
										13
									
								
								Compiler.cpp
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								Compiler.cpp
									
									
									
									
									
								
							| @ -107,13 +107,7 @@ void ExpressionCompiler::endVisit(UnaryOperation& _unaryOperation) | ||||
| 		append(eth::Instruction::NOT); | ||||
| 		break; | ||||
| 	case Token::BIT_NOT: // ~
 | ||||
| 		// ~a modeled as "a xor (0 - 1)" for now
 | ||||
| 		append(eth::Instruction::PUSH1); | ||||
| 		append(1); | ||||
| 		append(eth::Instruction::PUSH1); | ||||
| 		append(0); | ||||
| 		append(eth::Instruction::SUB); | ||||
| 		append(eth::Instruction::XOR); | ||||
| 		append(eth::Instruction::BNOT); | ||||
| 		break; | ||||
| 	case Token::DELETE: // delete
 | ||||
| 		// a -> a xor a (= 0).
 | ||||
| @ -145,7 +139,10 @@ void ExpressionCompiler::endVisit(UnaryOperation& _unaryOperation) | ||||
| 		// unary add, so basically no-op
 | ||||
| 		break; | ||||
| 	case Token::SUB: // -
 | ||||
| 		append(eth::Instruction::NEG); | ||||
| 		// unary -x translates into "0-x"
 | ||||
| 		append(eth::Instruction::PUSH1); | ||||
| 		append(0); | ||||
| 		append(eth::Instruction::SUB); | ||||
| 		break; | ||||
| 	default: | ||||
| 		assert(false); // invalid operation
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user