MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / AppendTwoOperandMethodCall

Method AppendTwoOperandMethodCall

lang/rust/pseudorust.cpp:399–428  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

397
398
399void 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
431void PseudoRustFunction::AppendTwoOperandFunctionWithCarry(const string& function,

Callers

nothing calls this directly

Calls 7

AppendOpenParenMethod · 0.80
AppendCloseParenMethod · 0.80
GetLeftExprMethod · 0.45
GetRightExprMethod · 0.45
GetLowExprMethod · 0.45
GetHighExprMethod · 0.45
AppendMethod · 0.45

Tested by

no test coverage detected