LLVM  4.0.0
MipsMCNaCl.h
Go to the documentation of this file.
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 LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSMCNACL_H
11 #define LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSMCNACL_H
12 
13 #include "llvm/MC/MCELFStreamer.h"
14 
15 namespace llvm {
16 
17 // Log2 of the NaCl MIPS sandbox's instruction bundle size.
18 static const unsigned MIPS_NACL_BUNDLE_ALIGN = 4u;
19 
20 bool isBasePlusOffsetMemoryAccess(unsigned Opcode, unsigned *AddrIdx,
21  bool *IsStore = nullptr);
22 bool baseRegNeedsLoadStoreMask(unsigned Reg);
23 
24 // This function creates an MCELFStreamer for Mips NaCl.
27  MCCodeEmitter *Emitter, bool RelaxAll);
28 }
29 
30 #endif
LLVMContext & Context
bool isBasePlusOffsetMemoryAccess(unsigned Opcode, unsigned *AddrIdx, bool *IsStore=nullptr)
Reg
All possible values of the reg field in the ModR/M byte.
bool baseRegNeedsLoadStoreMask(unsigned Reg)
Context object for machine code objects.
Definition: MCContext.h:51
MCCodeEmitter - Generic instruction encoding interface.
Definition: MCCodeEmitter.h:23
MCELFStreamer * createMipsNaClELFStreamer(MCContext &Context, MCAsmBackend &TAB, raw_pwrite_stream &OS, MCCodeEmitter *Emitter, bool RelaxAll)
static const unsigned MIPS_NACL_BUNDLE_ALIGN
Definition: MipsMCNaCl.h:18
An abstract base class for streams implementations that also support a pwrite operation.
Definition: raw_ostream.h:333
cl::opt< bool > RelaxAll("mc-relax-all", cl::desc("When used with filetype=obj, ""relax all fixups in the emitted object file"))
Generic interface to target specific assembler backends.
Definition: MCAsmBackend.h:36