1//===-- LoongArchTargetStreamer.cpp - LoongArch Target Streamer Methods ---===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file provides LoongArch specific target streamer methods.
10//
11//===----------------------------------------------------------------------===//
12
13#include "LoongArchTargetStreamer.h"
14
15using namespace llvm;
16
17LoongArchTargetStreamer::LoongArchTargetStreamer(MCStreamer &S)
18 : MCTargetStreamer(S) {}
19
20void LoongArchTargetStreamer::setTargetABI(LoongArchABI::ABI ABI) {
21 assert(ABI != LoongArchABI::ABI_Unknown &&
22 "Improperly initialized target ABI");
23 TargetABI = ABI;
24}
25
26void LoongArchTargetStreamer::emitDirectiveOptionPush() {}
27void LoongArchTargetStreamer::emitDirectiveOptionPop() {}
28void LoongArchTargetStreamer::emitDirectiveOptionRelax() {}
29void LoongArchTargetStreamer::emitDirectiveOptionNoRelax() {}
30
31// This part is for ascii assembly output.
32LoongArchTargetAsmStreamer::LoongArchTargetAsmStreamer(
33 MCStreamer &S, formatted_raw_ostream &OS)
34 : LoongArchTargetStreamer(S), OS(OS) {}
35
36void LoongArchTargetAsmStreamer::emitDirectiveOptionPush() {
37 OS << "\t.option\tpush\n";
38}
39
40void LoongArchTargetAsmStreamer::emitDirectiveOptionPop() {
41 OS << "\t.option\tpop\n";
42}
43
44void LoongArchTargetAsmStreamer::emitDirectiveOptionRelax() {
45 OS << "\t.option\trelax\n";
46}
47
48void LoongArchTargetAsmStreamer::emitDirectiveOptionNoRelax() {
49 OS << "\t.option\tnorelax\n";
50}
51