10b57cec5SDimitry Andric //===-- MipsMCNaCl.h - NaCl-related declarations --------------------------===//
20b57cec5SDimitry Andric //
30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric //
70b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric 
90b57cec5SDimitry Andric #ifndef LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSMCNACL_H
100b57cec5SDimitry Andric #define LLVM_LIB_TARGET_MIPS_MCTARGETDESC_MIPSMCNACL_H
110b57cec5SDimitry Andric 
120b57cec5SDimitry Andric #include "llvm/MC/MCELFStreamer.h"
130b57cec5SDimitry Andric #include "llvm/Support/Alignment.h"
140b57cec5SDimitry Andric 
150b57cec5SDimitry Andric namespace llvm {
160b57cec5SDimitry Andric 
170b57cec5SDimitry Andric // NaCl MIPS sandbox's instruction bundle size.
180b57cec5SDimitry Andric static const Align MIPS_NACL_BUNDLE_ALIGN = Align(16);
190b57cec5SDimitry Andric 
200b57cec5SDimitry Andric bool isBasePlusOffsetMemoryAccess(unsigned Opcode, unsigned *AddrIdx,
210b57cec5SDimitry Andric                                   bool *IsStore = nullptr);
220b57cec5SDimitry Andric bool baseRegNeedsLoadStoreMask(unsigned Reg);
230b57cec5SDimitry Andric 
240b57cec5SDimitry Andric // This function creates an MCELFStreamer for Mips NaCl.
250b57cec5SDimitry Andric MCELFStreamer *createMipsNaClELFStreamer(MCContext &Context,
260b57cec5SDimitry Andric                                          std::unique_ptr<MCAsmBackend> TAB,
270b57cec5SDimitry Andric                                          std::unique_ptr<MCObjectWriter> OW,
280b57cec5SDimitry Andric                                          std::unique_ptr<MCCodeEmitter> Emitter,
290b57cec5SDimitry Andric                                          bool RelaxAll);
300b57cec5SDimitry Andric }
310b57cec5SDimitry Andric 
32 #endif
33