| 458 | } |
| 459 | |
| 460 | void BeIRCodeGen::Init(const BfSizedArray<uint8>& buffer) |
| 461 | { |
| 462 | BP_ZONE("BeIRCodeGen::Init"); |
| 463 | |
| 464 | BF_ASSERT(mStream == NULL); |
| 465 | mStream = new ChunkedDataBuffer(); |
| 466 | mStream->InitFlatRef(buffer.mVals, buffer.mSize); |
| 467 | |
| 468 | #ifdef CODEGEN_TRACK |
| 469 | AutoCrit autoCrit(gBEMemReporterCritSect); |
| 470 | AutoMemReporter autoMemReporter(&gBEMemReporter, "BeIRCodeGen"); |
| 471 | #endif |
| 472 | |
| 473 | // |
| 474 | { |
| 475 | BP_ZONE("BeIRCodeGen::ProcessBfIRData.HandleNextCmds"); |
| 476 | while (mStream->GetReadPos() < buffer.mSize) |
| 477 | { |
| 478 | if (mFailed) |
| 479 | break; |
| 480 | HandleNextCmd(); |
| 481 | } |
| 482 | } |
| 483 | |
| 484 | BF_ASSERT((mFailed) || (mStream->GetReadPos() == buffer.mSize)); |
| 485 | } |
| 486 | |
| 487 | void BeIRCodeGen::Process() |
| 488 | { |
nothing calls this directly
no test coverage detected