| 397 | |
| 398 | |
| 399 | void PseudoRustFunction::AppendTwoOperandMethodCall(const string& function, |
| 400 | const HighLevelILInstruction& instr, HighLevelILTokenEmitter& emitter, DisassemblySettings* settings) |
| 401 | { |
| 402 | const auto& twoOperand = instr.AsTwoOperand(); |
| 403 | const auto leftExpr = twoOperand.GetLeftExpr(); |
| 404 | const auto rightExpr = twoOperand.GetRightExpr(); |
| 405 | |
| 406 | if (leftExpr.operation == HLIL_SPLIT) |
| 407 | { |
| 408 | const auto low = leftExpr.GetLowExpr(); |
| 409 | const auto high = leftExpr.GetHighExpr(); |
| 410 | |
| 411 | emitter.Append(OperationToken, "COMBINE"); |
| 412 | emitter.AppendOpenParen(); |
| 413 | GetExprText(high, emitter, settings); |
| 414 | emitter.Append(TextToken, ", "); |
| 415 | GetExprText(low, emitter, settings); |
| 416 | emitter.AppendCloseParen(); |
| 417 | } |
| 418 | else |
| 419 | { |
| 420 | GetExprText(leftExpr, emitter, settings, MemberAndFunctionOperatorPrecedence); |
| 421 | } |
| 422 | |
| 423 | emitter.Append(TextToken, "."); |
| 424 | emitter.Append(OperationToken, function); |
| 425 | emitter.AppendOpenParen(); |
| 426 | GetExprText(rightExpr, emitter, settings); |
| 427 | emitter.AppendCloseParen(); |
| 428 | } |
| 429 | |
| 430 | |
| 431 | void PseudoRustFunction::AppendTwoOperandFunctionWithCarry(const string& function, |
nothing calls this directly
no test coverage detected