================ @@ -0,0 +1,145 @@ +//===- MCSectionGOFF.cpp - GOFF Code Section Representation ---------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "llvm/MC/MCSectionGOFF.h" +#include "llvm/BinaryFormat/GOFF.h" +#include "llvm/Support/raw_ostream.h" + +using namespace llvm; + +namespace { +void emitRMode(raw_ostream &OS, GOFF::ESDRmode Rmode, bool UseParenthesis) { + if (Rmode != GOFF::ESD_RMODE_None) { + OS << "RMODE" << (UseParenthesis ? '(' : ' '); + switch (Rmode) { + case GOFF::ESD_RMODE_24: + OS << "24"; + break; + case GOFF::ESD_RMODE_31: + OS << "31"; + break; + case GOFF::ESD_RMODE_64: + OS << "64"; + break; + case GOFF::ESD_RMODE_None: + break; + } + if (UseParenthesis) + OS << ')'; + } +} + +void emitCATTR(raw_ostream &OS, StringRef Name, StringRef ParentName, + bool EmitAmodeAndRmode, GOFF::ESDAmode Amode, + GOFF::ESDRmode Rmode, GOFF::ESDAlignment Alignment, + GOFF::ESDLoadingBehavior LoadBehavior, + GOFF::ESDExecutable Executable, bool IsReadOnly, + StringRef PartName) { + if (EmitAmodeAndRmode && Amode != GOFF::ESD_AMODE_None) { + OS << ParentName << " AMODE "; + switch (Amode) { + case GOFF::ESD_AMODE_24: + OS << "24"; + break; + case GOFF::ESD_AMODE_31: + OS << "31"; + break; + case GOFF::ESD_AMODE_ANY: + OS << "ANY"; + break; + case GOFF::ESD_AMODE_64: + OS << "64"; + break; + case GOFF::ESD_AMODE_MIN: + OS << "ANY64"; + break; + case GOFF::ESD_AMODE_None: + break; + } + OS << "\n"; + } + if (EmitAmodeAndRmode && Rmode != GOFF::ESD_RMODE_None) { + OS << ParentName << ' '; + emitRMode(OS, Rmode, /*UseParenthesis=*/false); ---------------- redstar wrote:
I changed it, only the `CATTR RMODE` is now emitted. https://github.com/llvm/llvm-project/pull/133799 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits