| 3903 | } |
| 3904 | |
| 3905 | void OpDispatchBuilder::CreateJumpBlocks(const fextl::vector<FEXCore::Frontend::Decoder::DecodedBlocks>* Blocks) { |
| 3906 | Ref PrevCodeBlock {}; |
| 3907 | for (auto& Target : *Blocks) { |
| 3908 | auto CodeNode = CreateCodeNode(Target.IsEntryPoint, Target.Entry - Entry); |
| 3909 | |
| 3910 | JumpTargets.try_emplace(Target.Entry, JumpTargetInfo {CodeNode, false, Target.IsEntryPoint}); |
| 3911 | |
| 3912 | if (PrevCodeBlock) { |
| 3913 | LinkCodeBlocks(PrevCodeBlock, CodeNode); |
| 3914 | } |
| 3915 | |
| 3916 | PrevCodeBlock = CodeNode; |
| 3917 | } |
| 3918 | } |
| 3919 | |
| 3920 | void OpDispatchBuilder::BeginFunction(uint64_t RIP, const fextl::vector<FEXCore::Frontend::Decoder::DecodedBlocks>* Blocks, uint32_t NumInstructions, bool _Is64BitMode, bool MonoBackpatcherBlock) { |
| 3921 | Entry = RIP; |
nothing calls this directly
no outgoing calls
no test coverage detected