@@ -309,13 +309,8 @@ class MCFragment {
309
309
}
310
310
};
311
311
312
- // / Interface implemented by fragments that contain encoded instructions and/or
313
- // / data.
314
- class MCEncodedFragment : public MCFragment {
315
- protected:
316
- MCEncodedFragment (MCFragment::FragmentType FType, bool HasInstructions)
317
- : MCFragment(FType, HasInstructions) {}
318
- };
312
+ // MCFragment subclasses do not use the fixed-size part or variable-size tail of
313
+ // MCFragment. Instead, they encode content in a specialized way.
319
314
320
315
class MCFillFragment : public MCFragment {
321
316
uint8_t ValueSize;
@@ -331,7 +326,7 @@ class MCFillFragment : public MCFragment {
331
326
public:
332
327
MCFillFragment (uint64_t Value, uint8_t VSize, const MCExpr &NumValues,
333
328
SMLoc Loc)
334
- : MCFragment(FT_Fill, false ), ValueSize(VSize), Value(Value),
329
+ : MCFragment(FT_Fill), ValueSize(VSize), Value(Value),
335
330
NumValues (NumValues), Loc(Loc) {}
336
331
337
332
uint64_t getValue () const { return Value; }
@@ -362,7 +357,7 @@ class MCNopsFragment : public MCFragment {
362
357
public:
363
358
MCNopsFragment (int64_t NumBytes, int64_t ControlledNopLength, SMLoc L,
364
359
const MCSubtargetInfo &STI)
365
- : MCFragment(FT_Nops, false ), Size(NumBytes),
360
+ : MCFragment(FT_Nops), Size(NumBytes),
366
361
ControlledNopLength (ControlledNopLength), Loc(L), STI(STI) {}
367
362
368
363
int64_t getNumBytes () const { return Size; }
@@ -389,7 +384,7 @@ class MCOrgFragment : public MCFragment {
389
384
390
385
public:
391
386
MCOrgFragment (const MCExpr &Offset, int8_t Value, SMLoc Loc)
392
- : MCFragment(FT_Org, false ), Value(Value), Offset(&Offset), Loc(Loc) {}
387
+ : MCFragment(FT_Org), Value(Value), Offset(&Offset), Loc(Loc) {}
393
388
394
389
const MCExpr &getOffset () const { return *Offset; }
395
390
@@ -407,8 +402,7 @@ class MCSymbolIdFragment : public MCFragment {
407
402
const MCSymbol *Sym;
408
403
409
404
public:
410
- MCSymbolIdFragment (const MCSymbol *Sym)
411
- : MCFragment(FT_SymbolId, false ), Sym(Sym) {}
405
+ MCSymbolIdFragment (const MCSymbol *Sym) : MCFragment(FT_SymbolId), Sym(Sym) {}
412
406
413
407
const MCSymbol *getSymbol () { return Sym; }
414
408
const MCSymbol *getSymbol () const { return Sym; }
@@ -420,7 +414,7 @@ class MCSymbolIdFragment : public MCFragment {
420
414
421
415
// / Fragment representing the binary annotations produced by the
422
416
// / .cv_inline_linetable directive.
423
- class MCCVInlineLineTableFragment : public MCEncodedFragment {
417
+ class MCCVInlineLineTableFragment : public MCFragment {
424
418
unsigned SiteFuncId;
425
419
unsigned StartFileId;
426
420
unsigned StartLineNum;
@@ -435,7 +429,7 @@ class MCCVInlineLineTableFragment : public MCEncodedFragment {
435
429
MCCVInlineLineTableFragment (unsigned SiteFuncId, unsigned StartFileId,
436
430
unsigned StartLineNum, const MCSymbol *FnStartSym,
437
431
const MCSymbol *FnEndSym)
438
- : MCEncodedFragment (FT_CVInlineLines, false ), SiteFuncId(SiteFuncId),
432
+ : MCFragment (FT_CVInlineLines), SiteFuncId(SiteFuncId),
439
433
StartFileId (StartFileId), StartLineNum(StartLineNum),
440
434
FnStartSym(FnStartSym), FnEndSym(FnEndSym) {}
441
435
@@ -448,7 +442,7 @@ class MCCVInlineLineTableFragment : public MCEncodedFragment {
448
442
};
449
443
450
444
// / Fragment representing the .cv_def_range directive.
451
- class MCCVDefRangeFragment : public MCEncodedFragment {
445
+ class MCCVDefRangeFragment : public MCFragment {
452
446
ArrayRef<std::pair<const MCSymbol *, const MCSymbol *>> Ranges;
453
447
StringRef FixedSizePortion;
454
448
@@ -460,8 +454,7 @@ class MCCVDefRangeFragment : public MCEncodedFragment {
460
454
MCCVDefRangeFragment (
461
455
ArrayRef<std::pair<const MCSymbol *, const MCSymbol *>> Ranges,
462
456
StringRef FixedSizePortion)
463
- : MCEncodedFragment(FT_CVDefRange, false ),
464
- Ranges (Ranges.begin(), Ranges.end()),
457
+ : MCFragment(FT_CVDefRange), Ranges(Ranges.begin(), Ranges.end()),
465
458
FixedSizePortion (FixedSizePortion) {}
466
459
467
460
ArrayRef<std::pair<const MCSymbol *, const MCSymbol *>> getRanges () const {
@@ -492,8 +485,7 @@ class MCBoundaryAlignFragment : public MCFragment {
492
485
493
486
public:
494
487
MCBoundaryAlignFragment (Align AlignBoundary, const MCSubtargetInfo &STI)
495
- : MCFragment(FT_BoundaryAlign, false ), AlignBoundary(AlignBoundary),
496
- STI (STI) {}
488
+ : MCFragment(FT_BoundaryAlign), AlignBoundary(AlignBoundary), STI(STI) {}
497
489
498
490
uint64_t getSize () const { return Size; }
499
491
void setSize (uint64_t Value) { Size = Value; }
0 commit comments