MCPcopy Create free account
hub / github.com/ZDoom/Raze / serialize

Method serialize

libraries/asmjit/asmjit/base/codebuilder.cpp:504–567  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

502// ============================================================================
503
504Error CodeBuilder::serialize(CodeEmitter* dst) {
505 Error err = kErrorOk;
506 CBNode* node_ = getFirstNode();
507
508 do {
509 dst->setInlineComment(node_->getInlineComment());
510
511 switch (node_->getType()) {
512 case CBNode::kNodeAlign: {
513 CBAlign* node = static_cast<CBAlign*>(node_);
514 err = dst->align(node->getMode(), node->getAlignment());
515 break;
516 }
517
518 case CBNode::kNodeData: {
519 CBData* node = static_cast<CBData*>(node_);
520 err = dst->embed(node->getData(), node->getSize());
521 break;
522 }
523
524 case CBNode::kNodeFunc:
525 case CBNode::kNodeLabel: {
526 CBLabel* node = static_cast<CBLabel*>(node_);
527 err = dst->bind(node->getLabel());
528 break;
529 }
530
531 case CBNode::kNodeLabelData: {
532 CBLabelData* node = static_cast<CBLabelData*>(node_);
533 err = dst->embedLabel(node->getLabel());
534 break;
535 }
536
537 case CBNode::kNodeConstPool: {
538 CBConstPool* node = static_cast<CBConstPool*>(node_);
539 err = dst->embedConstPool(node->getLabel(), node->getConstPool());
540 break;
541 }
542
543 case CBNode::kNodeInst:
544 case CBNode::kNodeFuncCall: {
545 CBInst* node = node_->as<CBInst>();
546 dst->setOptions(node->getOptions());
547 dst->setExtraReg(node->getExtraReg());
548 err = dst->emitOpArray(node->getInstId(), node->getOpArray(), node->getOpCount());
549 break;
550 }
551
552 case CBNode::kNodeComment: {
553 CBComment* node = static_cast<CBComment*>(node_);
554 err = dst->comment(node->getInlineComment());
555 break;
556 }
557
558 default:
559 break;
560 }
561

Callers

nothing calls this directly

Calls 15

getFirstNodeFunction · 0.85
setInlineCommentMethod · 0.80
getInlineCommentMethod · 0.80
setOptionsMethod · 0.80
getOptionsMethod · 0.80
setExtraRegMethod · 0.80
getInstIdMethod · 0.80
getOpArrayMethod · 0.80
getOpCountMethod · 0.80
getTypeMethod · 0.45
alignMethod · 0.45
getModeMethod · 0.45

Tested by

no test coverage detected