blob: 988629ed1bca7f0e9727fa8712477f0e2ac43b26 [file] [log] [blame]
Sasa Stankovic8c5736b2014-02-28 10:00:38 +00001//===-- MipsMCNaCl.h - NaCl-related declarations --------------------------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
Benjamin Kramera7c40ef2014-08-13 16:26:38 +000010#ifndef LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSMCNACL_H
11#define LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSMCNACL_H
Sasa Stankovic8c5736b2014-02-28 10:00:38 +000012
13#include "llvm/MC/MCELFStreamer.h"
14
15namespace llvm {
16
17// Log2 of the NaCl MIPS sandbox's instruction bundle size.
18static const unsigned MIPS_NACL_BUNDLE_ALIGN = 4u;
19
Sasa Stankovic5fddf612014-03-10 20:34:23 +000020bool isBasePlusOffsetMemoryAccess(unsigned Opcode, unsigned *AddrIdx,
Craig Toppere73658d2014-04-28 04:05:08 +000021 bool *IsStore = nullptr);
Sasa Stankovic5fddf612014-03-10 20:34:23 +000022bool baseRegNeedsLoadStoreMask(unsigned Reg);
23
Sasa Stankovic8c5736b2014-02-28 10:00:38 +000024// This function creates an MCELFStreamer for Mips NaCl.
Lang Hames02d33052017-10-11 01:57:21 +000025MCELFStreamer *createMipsNaClELFStreamer(MCContext &Context,
26 std::unique_ptr<MCAsmBackend> TAB,
Peter Collingbournef7b81db2018-05-18 18:26:45 +000027 std::unique_ptr<MCObjectWriter> OW,
Lang Hames2241ffa2017-10-11 23:34:47 +000028 std::unique_ptr<MCCodeEmitter> Emitter,
29 bool RelaxAll);
Alexander Kornienkof00654e2015-06-23 09:49:53 +000030}
Sasa Stankovic8c5736b2014-02-28 10:00:38 +000031
32#endif