45 lines · c
1//===-- WebAssemblyMCAsmInfo.h - WebAssembly asm properties -----*- C++ -*-===//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-exception6//7//===----------------------------------------------------------------------===//8///9/// \file10/// This file contains the declaration of the WebAssemblyMCAsmInfo class.11///12//===----------------------------------------------------------------------===//13 14#ifndef LLVM_LIB_TARGET_WEBASSEMBLY_MCTARGETDESC_WEBASSEMBLYMCASMINFO_H15#define LLVM_LIB_TARGET_WEBASSEMBLY_MCTARGETDESC_WEBASSEMBLYMCASMINFO_H16 17#include "llvm/MC/MCAsmInfoWasm.h"18 19namespace llvm {20 21class Triple;22 23class WebAssemblyMCAsmInfo final : public MCAsmInfoWasm {24public:25 explicit WebAssemblyMCAsmInfo(const Triple &T,26 const MCTargetOptions &Options);27 ~WebAssemblyMCAsmInfo() override;28};29 30namespace WebAssembly {31enum Specifier {32 S_None,33 S_FUNCINDEX, // Wasm function index34 S_GOT,35 S_GOT_TLS, // Wasm global index of TLS symbol36 S_MBREL, // Memory address relative to __memory_base37 S_TBREL, // Table index relative to __table_base38 S_TLSREL, // Memory address relative to __tls_base39 S_TYPEINDEX, // Reference to a symbol's type (signature)40};41}42} // end namespace llvm43 44#endif45