Lines Matching full:w
37 : Obj(Obj), W(OS, llvm::endianness::big), ErrHandler(EH),
73 support::endian::Writer W;
87 static void writeName(StringRef StrName, support::endian::Writer W) {
93 W.write(NameRef);
440 W.write<uint16_t>(Obj.Header.Magic ? Obj.Header.Magic : InitFileHdr.Magic);
441 W.write<uint16_t>(Obj.Header.NumberOfSections ? Obj.Header.NumberOfSections
443 W.write<int32_t>(Obj.Header.TimeStamp);
445 W.write<uint64_t>(InitFileHdr.SymbolTableOffset);
446 W.write<uint16_t>(InitFileHdr.AuxHeaderSize);
447 W.write<uint16_t>(Obj.Header.Flags);
448 W.write<int32_t>(Obj.Header.NumberOfSymTableEntries
452 W.write<uint32_t>(InitFileHdr.SymbolTableOffset);
453 W.write<int32_t>(Obj.Header.NumberOfSymTableEntries
456 W.write<uint16_t>(InitFileHdr.AuxHeaderSize);
457 W.write<uint16_t>(Obj.Header.Flags);
462 W.write<uint16_t>(InitAuxFileHdr.Magic.value_or(yaml::Hex16(1)));
463 W.write<uint16_t>(InitAuxFileHdr.Version.value_or(yaml::Hex16(1)));
465 W.OS.write_zeros(4); // Reserved for debugger.
466 W.write<uint64_t>(InitAuxFileHdr.TextStartAddr.value_or(yaml::Hex64(0)));
467 W.write<uint64_t>(InitAuxFileHdr.DataStartAddr.value_or(yaml::Hex64(0)));
468 W.write<uint64_t>(InitAuxFileHdr.TOCAnchorAddr.value_or(yaml::Hex64(0)));
470 W.write<uint32_t>(InitAuxFileHdr.TextSize.value_or(yaml::Hex64(0)));
471 W.write<uint32_t>(InitAuxFileHdr.InitDataSize.value_or(yaml::Hex64(0)));
472 W.write<uint32_t>(InitAuxFileHdr.BssDataSize.value_or(yaml::Hex64(0)));
473 W.write<uint32_t>(InitAuxFileHdr.EntryPointAddr.value_or(yaml::Hex64(0)));
474 W.write<uint32_t>(InitAuxFileHdr.TextStartAddr.value_or(yaml::Hex64(0)));
475 W.write<uint32_t>(InitAuxFileHdr.DataStartAddr.value_or(yaml::Hex64(0)));
479 W.write<uint32_t>(InitAuxFileHdr.TOCAnchorAddr.value_or(yaml::Hex64(0)));
481 W.write<uint16_t>(InitAuxFileHdr.SecNumOfEntryPoint.value_or(0));
482 W.write<uint16_t>(InitAuxFileHdr.SecNumOfText.value_or(0));
483 W.write<uint16_t>(InitAuxFileHdr.SecNumOfData.value_or(0));
484 W.write<uint16_t>(InitAuxFileHdr.SecNumOfTOC.value_or(0));
485 W.write<uint16_t>(InitAuxFileHdr.SecNumOfLoader.value_or(0));
486 W.write<uint16_t>(InitAuxFileHdr.SecNumOfBSS.value_or(0));
487 W.write<uint16_t>(InitAuxFileHdr.MaxAlignOfText.value_or(yaml::Hex16(0)));
488 W.write<uint16_t>(InitAuxFileHdr.MaxAlignOfData.value_or(yaml::Hex16(0)));
489 W.write<uint16_t>(InitAuxFileHdr.ModuleType.value_or(yaml::Hex16(0)));
490 W.write<uint8_t>(InitAuxFileHdr.CpuFlag.value_or(yaml::Hex8(0)));
491 W.write<uint8_t>(0); // Reserved for CPU type.
493 W.write<uint8_t>(InitAuxFileHdr.TextPageSize.value_or(yaml::Hex8(0)));
494 W.write<uint8_t>(InitAuxFileHdr.DataPageSize.value_or(yaml::Hex8(0)));
495 W.write<uint8_t>(InitAuxFileHdr.StackPageSize.value_or(yaml::Hex8(0)));
496 W.write<uint8_t>(
498 W.write<uint64_t>(InitAuxFileHdr.TextSize.value_or(yaml::Hex64(0)));
499 W.write<uint64_t>(InitAuxFileHdr.InitDataSize.value_or(yaml::Hex64(0)));
500 W.write<uint64_t>(InitAuxFileHdr.BssDataSize.value_or(yaml::Hex64(0)));
501 W.write<uint64_t>(InitAuxFileHdr.EntryPointAddr.value_or(yaml::Hex64(0)));
502 W.write<uint64_t>(InitAuxFileHdr.MaxStackSize.value_or(yaml::Hex64(0)));
503 W.write<uint64_t>(InitAuxFileHdr.MaxDataSize.value_or(yaml::Hex64(0)));
505 W.write<uint32_t>(InitAuxFileHdr.MaxStackSize.value_or(yaml::Hex64(0)));
506 W.write<uint32_t>(InitAuxFileHdr.MaxDataSize.value_or(yaml::Hex64(0)));
507 W.OS.write_zeros(4); // Reserved for debugger.
508 W.write<uint8_t>(InitAuxFileHdr.TextPageSize.value_or(yaml::Hex8(0)));
509 W.write<uint8_t>(InitAuxFileHdr.DataPageSize.value_or(yaml::Hex8(0)));
510 W.write<uint8_t>(InitAuxFileHdr.StackPageSize.value_or(yaml::Hex8(0)));
511 W.write<uint8_t>(
514 W.write<uint16_t>(InitAuxFileHdr.SecNumOfTData.value_or(0));
515 W.write<uint16_t>(InitAuxFileHdr.SecNumOfTBSS.value_or(0));
517 W.write<uint16_t>(
520 W.OS.write_zeros(InitFileHdr.AuxHeaderSize - XCOFF::AuxFileHeaderSize64);
523 W.OS.write_zeros(InitFileHdr.AuxHeaderSize - XCOFF::AuxFileHeaderSize32);
530 writeName(DerivedSec.SectionName, W);
533 W.write<uint64_t>(DerivedSec.Address); // Physical address
534 W.write<uint64_t>(DerivedSec.Address); // Virtual address
535 W.write<uint64_t>(DerivedSec.Size);
536 W.write<uint64_t>(DerivedSec.FileOffsetToData);
537 W.write<uint64_t>(DerivedSec.FileOffsetToRelocations);
538 W.write<uint64_t>(DerivedSec.FileOffsetToLineNumbers);
539 W.write<uint32_t>(DerivedSec.NumberOfRelocations);
540 W.write<uint32_t>(DerivedSec.NumberOfLineNumbers);
541 W.write<int32_t>(DerivedSec.Flags);
542 W.OS.write_zeros(4);
545 W.write<uint32_t>(DerivedSec.Address); // Physical address
546 W.write<uint32_t>(DerivedSec.Address); // Virtual address
547 W.write<uint32_t>(DerivedSec.Size);
548 W.write<uint32_t>(DerivedSec.FileOffsetToData);
549 W.write<uint32_t>(DerivedSec.FileOffsetToRelocations);
550 W.write<uint32_t>(DerivedSec.FileOffsetToLineNumbers);
551 W.write<uint16_t>(DerivedSec.NumberOfRelocations);
552 W.write<uint16_t>(DerivedSec.NumberOfLineNumbers);
553 W.write<int32_t>(DerivedSec.Flags);
564 (W.OS.tell() - StartOffset);
569 W.OS.write_zeros(PaddingSize);
570 YamlSec.SectionData.writeAsBinary(W.OS);
581 InitSections[I].FileOffsetToRelocations - (W.OS.tell() - StartOffset);
586 W.OS.write_zeros(PaddingSize);
589 W.write<uint64_t>(YamlRel.VirtualAddress);
591 W.write<uint32_t>(YamlRel.VirtualAddress);
592 W.write<uint32_t>(YamlRel.SymbolIndex);
593 W.write<uint8_t>(YamlRel.Info);
594 W.write<uint8_t>(YamlRel.Type);
635 W.write<uint32_t>(AuxSym.SectionOrLengthLo.value_or(0));
636 W.write<uint32_t>(AuxSym.ParameterHashIndex.value_or(0));
637 W.write<uint16_t>(AuxSym.TypeChkSectNum.value_or(0));
638 W.write<uint8_t>(SymAlignAndType);
639 W.write<uint8_t>(AuxSym.StorageMappingClass.value_or(XCOFF::XMC_PR));
640 W.write<uint32_t>(AuxSym.SectionOrLengthHi.value_or(0));
641 W.write<uint8_t>(0);
642 W.write<uint8_t>(XCOFF::AUX_CSECT);
644 W.write<uint32_t>(AuxSym.SectionOrLength.value_or(0));
645 W.write<uint32_t>(AuxSym.ParameterHashIndex.value_or(0));
646 W.write<uint16_t>(AuxSym.TypeChkSectNum.value_or(0));
647 W.write<uint8_t>(SymAlignAndType);
648 W.write<uint8_t>(AuxSym.StorageMappingClass.value_or(XCOFF::XMC_PR));
649 W.write<uint32_t>(AuxSym.StabInfoIndex.value_or(0));
650 W.write<uint16_t>(AuxSym.StabSectNum.value_or(0));
657 W.write<uint64_t>(AuxSym.OffsetToExceptionTbl.value_or(0));
658 W.write<uint32_t>(AuxSym.SizeOfFunction.value_or(0));
659 W.write<uint32_t>(AuxSym.SymIdxOfNextBeyond.value_or(0));
660 W.write<uint8_t>(0);
661 W.write<uint8_t>(XCOFF::AUX_EXCEPT);
667 W.write<uint64_t>(AuxSym.PtrToLineNum.value_or(0));
668 W.write<uint32_t>(AuxSym.SizeOfFunction.value_or(0));
669 W.write<uint32_t>(AuxSym.SymIdxOfNextBeyond.value_or(0));
670 W.write<uint8_t>(0);
671 W.write<uint8_t>(XCOFF::AUX_FCN);
673 W.write<uint32_t>(AuxSym.OffsetToExceptionTbl.value_or(0));
674 W.write<uint32_t>(AuxSym.SizeOfFunction.value_or(0));
675 W.write<uint32_t>(AuxSym.PtrToLineNum.value_or(0));
676 W.write<uint32_t>(AuxSym.SymIdxOfNextBeyond.value_or(0));
677 W.OS.write_zeros(2);
685 W.write<int32_t>(0);
686 W.write<uint32_t>(StrTblBuilder.getOffset(FileName));
688 writeName(FileName, W);
690 W.OS.write_zeros(XCOFF::FileNamePadSize);
691 W.write<uint8_t>(AuxSym.FileStringType.value_or(XCOFF::XFT_FN));
693 W.OS.write_zeros(2);
694 W.write<uint8_t>(XCOFF::AUX_FILE);
696 W.OS.write_zeros(3);
703 W.write<uint32_t>(AuxSym.LineNum.value_or(0));
704 W.OS.write_zeros(13);
705 W.write<uint8_t>(XCOFF::AUX_SYM);
707 W.OS.write_zeros(2);
708 W.write<uint16_t>(AuxSym.LineNumHi.value_or(0));
709 W.write<uint16_t>(AuxSym.LineNumLo.value_or(0));
710 W.OS.write_zeros(12);
717 W.write<uint64_t>(AuxSym.LengthOfSectionPortion.value_or(0));
718 W.write<uint64_t>(AuxSym.NumberOfRelocEnt.value_or(0));
719 W.write<uint8_t>(0);
720 W.write<uint8_t>(XCOFF::AUX_SECT);
722 W.write<uint32_t>(AuxSym.LengthOfSectionPortion.value_or(0));
723 W.OS.write_zeros(4);
724 W.write<uint32_t>(AuxSym.NumberOfRelocEnt.value_or(0));
725 W.OS.write_zeros(6);
732 W.write<uint32_t>(AuxSym.SectionLength.value_or(0));
733 W.write<uint16_t>(AuxSym.NumberOfRelocEnt.value_or(0));
734 W.write<uint16_t>(AuxSym.NumberOfLineNum.value_or(0));
735 W.OS.write_zeros(10);
761 InitFileHdr.SymbolTableOffset - (W.OS.tell() - StartOffset);
766 W.OS.write_zeros(PaddingSize);
769 W.write<uint64_t>(YamlSym.Value);
770 W.write<uint32_t>(StrTblBuilder.getOffset(YamlSym.SymbolName));
775 W.write<int32_t>(0);
776 W.write<uint32_t>(StrTblBuilder.getOffset(YamlSym.SymbolName));
778 writeName(YamlSym.SymbolName, W);
780 W.write<uint32_t>(YamlSym.Value);
795 W.write<int16_t>(SectionIndexMap[*YamlSym.SectionName]);
797 W.write<int16_t>(YamlSym.SectionIndex ? *YamlSym.SectionIndex : 0);
799 W.write<uint16_t>(YamlSym.Type);
800 W.write<uint8_t>(YamlSym.StorageClass);
803 W.write<uint8_t>(NumOfAuxSym);
810 W.OS.write_zeros(XCOFF::SymbolTableEntrySize * NumOfAuxSym);
819 W.OS.write_zeros(XCOFF::SymbolTableEntrySize *
828 Obj.StrTbl.RawContent->writeAsBinary(W.OS);
832 W.OS.write_zeros(*Obj.StrTbl.ContentSize -
844 StrTblBuilder.write(W.OS);
859 W.OS.write(Buf->getBufferStart(), Buf->getBufferSize());
864 W.OS.write_zeros(*Obj.StrTbl.ContentSize - StrTblBuilderSize);
871 StartOffset = W.OS.tell();