MipsMCNaCl.h revision dce4a407a24b04eebc6a376f8e62b41aaa7b071f
1//===-- 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
10#ifndef MIPSMCNACL_H
11#define MIPSMCNACL_H
12
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
20bool isBasePlusOffsetMemoryAccess(unsigned Opcode, unsigned *AddrIdx,
21                                  bool *IsStore = nullptr);
22bool baseRegNeedsLoadStoreMask(unsigned Reg);
23
24// This function creates an MCELFStreamer for Mips NaCl.
25MCELFStreamer *createMipsNaClELFStreamer(MCContext &Context, MCAsmBackend &TAB,
26                                         raw_ostream &OS,
27                                         MCCodeEmitter *Emitter,
28                                         const MCSubtargetInfo &STI,
29                                         bool RelaxAll, bool NoExecStack);
30
31}
32
33#endif
34