Lines Matching refs:opcodes
375 std::vector<BindIR> &opcodes) { in encodeBinding() argument
379 opcodes.push_back( in encodeBinding()
386 opcodes.push_back({BIND_OPCODE_ADD_ADDR_ULEB, offset - lastBinding.offset}); in encodeBinding()
391 opcodes.push_back( in encodeBinding()
396 opcodes.push_back({BIND_OPCODE_DO_BIND, 0}); in encodeBinding()
401 static void optimizeOpcodes(std::vector<BindIR> &opcodes) { in optimizeOpcodes() argument
405 for (i = 1; i < opcodes.size(); ++i, ++pWrite) { in optimizeOpcodes()
406 if ((opcodes[i].opcode == BIND_OPCODE_ADD_ADDR_ULEB) && in optimizeOpcodes()
407 (opcodes[i - 1].opcode == BIND_OPCODE_DO_BIND)) { in optimizeOpcodes()
408 opcodes[pWrite].opcode = BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB; in optimizeOpcodes()
409 opcodes[pWrite].data = opcodes[i].data; in optimizeOpcodes()
412 opcodes[pWrite] = opcodes[i - 1]; in optimizeOpcodes()
415 if (i == opcodes.size()) in optimizeOpcodes()
416 opcodes[pWrite] = opcodes[i - 1]; in optimizeOpcodes()
417 opcodes.resize(pWrite + 1); in optimizeOpcodes()
421 for (i = 1; i < opcodes.size(); ++i, ++pWrite) { in optimizeOpcodes()
422 if ((opcodes[i].opcode == BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB) && in optimizeOpcodes()
423 (opcodes[i - 1].opcode == BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB) && in optimizeOpcodes()
424 (opcodes[i].data == opcodes[i - 1].data)) { in optimizeOpcodes()
425 opcodes[pWrite].opcode = BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB; in optimizeOpcodes()
426 opcodes[pWrite].consecutiveCount = 2; in optimizeOpcodes()
427 opcodes[pWrite].data = opcodes[i].data; in optimizeOpcodes()
429 while (i < opcodes.size() && in optimizeOpcodes()
430 (opcodes[i].opcode == BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB) && in optimizeOpcodes()
431 (opcodes[i].data == opcodes[i - 1].data)) { in optimizeOpcodes()
432 opcodes[pWrite].consecutiveCount++; in optimizeOpcodes()
436 opcodes[pWrite] = opcodes[i - 1]; in optimizeOpcodes()
439 if (i == opcodes.size()) in optimizeOpcodes()
440 opcodes[pWrite] = opcodes[i - 1]; in optimizeOpcodes()
441 opcodes.resize(pWrite + 1); in optimizeOpcodes()
448 for (auto &p : opcodes) { in optimizeOpcodes()
586 std::vector<BindIR> opcodes; in finalizeContents() local
590 lastBinding, opcodes); in finalizeContents()
592 optimizeOpcodes(opcodes); in finalizeContents()
593 for (const auto &op : opcodes) in finalizeContents()
620 std::vector<BindIR> opcodes; in finalizeContents() local
624 lastBinding, opcodes); in finalizeContents()
626 optimizeOpcodes(opcodes); in finalizeContents()
627 for (const auto &op : opcodes) in finalizeContents()