Lines Matching full:this
46 this->Ctx->BreakLabel = BreakLabel; in LoopScope()
47 this->Ctx->ContinueLabel = ContinueLabel; in LoopScope()
51 this->Ctx->BreakLabel = OldBreakLabel; in ~LoopScope()
52 this->Ctx->ContinueLabel = OldContinueLabel; in ~LoopScope()
70 OldDefaultLabel(this->Ctx->DefaultLabel), in SwitchScope()
71 OldCaseLabels(std::move(this->Ctx->CaseLabels)) { in SwitchScope()
72 this->Ctx->BreakLabel = BreakLabel; in SwitchScope()
73 this->Ctx->DefaultLabel = DefaultLabel; in SwitchScope()
74 this->Ctx->CaseLabels = std::move(CaseLabels); in SwitchScope()
78 this->Ctx->BreakLabel = OldBreakLabel; in ~SwitchScope()
79 this->Ctx->DefaultLabel = OldDefaultLabel; in ~SwitchScope()
80 this->Ctx->CaseLabels = std::move(OldCaseLabels); in ~SwitchScope()
95 ReturnType = this->classify(F->getReturnType()); in visitFunc()
100 const Record *R = this->getRecord(RD); in visitFunc()
109 if (std::optional<PrimType> T = this->classify(InitExpr)) { in visitFunc()
110 if (!this->emitThis(InitExpr)) in visitFunc()
113 if (!this->visit(InitExpr)) in visitFunc()
116 if (!this->emitInitField(*T, F->Offset, InitExpr)) in visitFunc()
119 if (!this->emitPopPtr(InitExpr)) in visitFunc()
124 if (!this->emitThis(InitExpr)) in visitFunc()
127 if (!this->emitGetPtrField(F->Offset, InitExpr)) in visitFunc()
130 if (!this->visitInitializer(InitExpr)) in visitFunc()
133 if (!this->emitPopPtr(InitExpr)) in visitFunc()
138 // Get This Base and call initializer on it. in visitFunc()
143 if (!this->emitGetPtrThisBase(B->Offset, InitExpr)) in visitFunc()
145 if (!this->visitInitializer(InitExpr)) in visitFunc()
147 if (!this->emitPopPtr(InitExpr)) in visitFunc()
159 return this->emitRetVoid(SourceInfo{}); in visitFunc()
161 return this->emitNoRet(SourceInfo{}); in visitFunc()
189 return this->discard(Exp); in visitStmt()
190 return this->bail(S); in visitStmt()
198 BlockScope<Emitter> Scope(this); in visitCompoundStmt()
210 if (!this->visitVarDecl(VD)) in visitDeclStmt()
217 return this->bail(DD); in visitDeclStmt()
227 ExprScope<Emitter> RetScope(this); in visitReturnStmt()
230 if (!this->visit(RE)) in visitReturnStmt()
232 this->emitCleanup(); in visitReturnStmt()
233 return this->emitRet(*ReturnType, RS); in visitReturnStmt()
236 if (!this->emitRVOPtr(RE)) in visitReturnStmt()
238 if (!this->visitInitializer(RE)) in visitReturnStmt()
240 if (!this->emitPopPtr(RE)) in visitReturnStmt()
243 this->emitCleanup(); in visitReturnStmt()
244 return this->emitRetVoid(RS); in visitReturnStmt()
249 this->emitCleanup(); in visitReturnStmt()
250 return this->emitRetVoid(RS); in visitReturnStmt()
255 BlockScope<Emitter> IfScope(this); in visitIfStmt()
270 if (!this->visitBool(IS->getCond())) in visitIfStmt()
274 LabelTy LabelElse = this->getLabel(); in visitIfStmt()
275 LabelTy LabelEnd = this->getLabel(); in visitIfStmt()
276 if (!this->jumpFalse(LabelElse)) in visitIfStmt()
280 if (!this->jump(LabelEnd)) in visitIfStmt()
282 this->emitLabel(LabelElse); in visitIfStmt()
285 this->emitLabel(LabelEnd); in visitIfStmt()
287 LabelTy LabelEnd = this->getLabel(); in visitIfStmt()
288 if (!this->jumpFalse(LabelEnd)) in visitIfStmt()
292 this->emitLabel(LabelEnd); in visitIfStmt()
303 LabelTy CondLabel = this->getLabel(); // Label before the condition. in visitWhileStmt()
304 LabelTy EndLabel = this->getLabel(); // Label after the loop. in visitWhileStmt()
305 LoopScope<Emitter> LS(this, EndLabel, CondLabel); in visitWhileStmt()
307 this->emitLabel(CondLabel); in visitWhileStmt()
308 if (!this->visitBool(Cond)) in visitWhileStmt()
310 if (!this->jumpFalse(EndLabel)) in visitWhileStmt()
313 if (!this->visitStmt(Body)) in visitWhileStmt()
315 if (!this->jump(CondLabel)) in visitWhileStmt()
318 this->emitLabel(EndLabel); in visitWhileStmt()
328 LabelTy StartLabel = this->getLabel(); in visitDoStmt()
329 LabelTy EndLabel = this->getLabel(); in visitDoStmt()
330 LabelTy CondLabel = this->getLabel(); in visitDoStmt()
331 LoopScope<Emitter> LS(this, EndLabel, CondLabel); in visitDoStmt()
333 this->emitLabel(StartLabel); in visitDoStmt()
334 if (!this->visitStmt(Body)) in visitDoStmt()
336 this->emitLabel(CondLabel); in visitDoStmt()
337 if (!this->visitBool(Cond)) in visitDoStmt()
339 if (!this->jumpTrue(StartLabel)) in visitDoStmt()
341 this->emitLabel(EndLabel); in visitDoStmt()
353 LabelTy EndLabel = this->getLabel(); in visitForStmt()
354 LabelTy CondLabel = this->getLabel(); in visitForStmt()
355 LabelTy IncLabel = this->getLabel(); in visitForStmt()
356 LoopScope<Emitter> LS(this, EndLabel, IncLabel); in visitForStmt()
358 if (Init && !this->visitStmt(Init)) in visitForStmt()
360 this->emitLabel(CondLabel); in visitForStmt()
362 if (!this->visitBool(Cond)) in visitForStmt()
364 if (!this->jumpFalse(EndLabel)) in visitForStmt()
367 if (Body && !this->visitStmt(Body)) in visitForStmt()
369 this->emitLabel(IncLabel); in visitForStmt()
370 if (Inc && !this->discard(Inc)) in visitForStmt()
372 if (!this->jump(CondLabel)) in visitForStmt()
374 this->emitLabel(EndLabel); in visitForStmt()
383 return this->jump(*BreakLabel); in visitBreakStmt()
391 return this->jump(*ContinueLabel); in visitContinueStmt()