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

Method AppendTwoOperandFunctionWithCarry

lang/rust/pseudorust.cpp:431–462  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

429
430
431void PseudoRustFunction::AppendTwoOperandFunctionWithCarry(const string& function,
432 const HighLevelILInstruction& instr, HighLevelILTokenEmitter& tokens, DisassemblySettings* settings)
433{
434 const auto leftExpr = instr.GetLeftExpr();
435 const auto rightExpr = instr.GetRightExpr();
436 const auto carryExpr = instr.GetCarryExpr();
437
438 tokens.Append(OperationToken, function);
439 AppendSingleSizeToken(instr.size, OperationToken, tokens);
440 tokens.AppendOpenParen();
441
442 if (leftExpr.operation == HLIL_SPLIT)
443 {
444 const auto low = leftExpr.GetLowExpr();
445 const auto high = leftExpr.GetHighExpr();
446
447 tokens.Append(OperationToken, "COMBINE");
448 tokens.AppendOpenParen();
449 GetExprText(high, tokens, settings);
450 tokens.Append(TextToken, ", ");
451 GetExprText(low, tokens, settings);
452 tokens.AppendCloseParen();
453 }
454
455 GetExprText(leftExpr, tokens, settings);
456 tokens.Append(TextToken, ", ");
457 GetExprText(rightExpr, tokens, settings);
458 tokens.Append(TextToken, ", ");
459 GetExprText(carryExpr, tokens, settings);
460
461 tokens.AppendCloseParen();
462}
463
464
465Ref<Type> PseudoRustFunction::GetFieldType(const HighLevelILInstruction& var, bool deref)

Callers

nothing calls this directly

Calls 8

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

Tested by

no test coverage detected