Go to the documentation of this file.
44 for (
auto Type : Types) {
63 OS <<
"\t.functype\t" << Sym->
getName() <<
" ";
70 OS <<
"\t.globaltype\t" << Sym->
getName() <<
", "
81 OS <<
"\t.tabletype\t" << Sym->
getName() <<
", "
84 if (
Type.Limits.Minimum != 0 || HasMaximum) {
85 OS <<
", " <<
Type.Limits.Minimum;
87 OS <<
", " <<
Type.Limits.Maximum;
94 OS <<
"\t.tagtype\t" << Sym->
getName() <<
" ";
101 OS <<
"\t.import_module\t" << Sym->
getName() <<
", "
102 << ImportModule <<
'\n';
107 OS <<
"\t.import_name\t" << Sym->
getName() <<
", "
108 << ImportName <<
'\n';
113 OS <<
"\t.export_name\t" << Sym->
getName() <<
", "
114 << ExportName <<
'\n';
118 OS <<
"\t.indidx \t" << *
Value <<
'\n';
123 for (
auto Type : Types) {
124 if (Grouped.empty() || Grouped.back().first !=
Type)
125 Grouped.push_back(std::make_pair(
Type, 1));
127 ++Grouped.back().second;
131 for (
auto Pair : Grouped) {
This is an optimization pass for GlobalISel generic memory operations.
WebAssembly-specific streamer interface, to implement support WebAssembly-specific assembly directive...
void emitIndIdx(const MCExpr *Value) override
.indidx
void emitLocal(ArrayRef< wasm::ValType > Types) override
.local
void emitImportName(const MCSymbolWasm *Sym, StringRef ImportName) override
.import_name
void emitFunctionType(const MCSymbolWasm *Sym) override
.functype
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
const wasm::WasmTableType & getTableType() const
std::string signatureToString(const wasm::WasmSignature *Sig)
The instances of the Type class are immutable: once they are created, they are never changed.
WebAssemblyTargetAsmStreamer(MCStreamer &S, formatted_raw_ostream &OS)
Streaming machine code generation interface.
into llvm powi allowing the code generator to produce balanced multiplication trees First
Target specific streamer interface.
StringRef getName() const
getName - Get the symbol name.
const wasm::WasmGlobalType & getGlobalType() const
std::string typeListToString(ArrayRef< wasm::ValType > List)
void emitExportName(const MCSymbolWasm *Sym, StringRef ExportName) override
.export_name
void emitLocal(ArrayRef< wasm::ValType > Types) override
.local
unsigned emitULEB128IntValue(uint64_t Value, unsigned PadTo=0)
Special case of EmitULEB128Value that avoids the client having to pass in a MCExpr for constant integ...
void emitIndIdx(const MCExpr *Value) override
.indidx
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
virtual void emitIntValue(uint64_t Value, unsigned Size)
Special case of EmitValue that avoids the client having to pass in a MCExpr for constant integers.
void emitTableType(const MCSymbolWasm *Sym) override
.tabletype
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
StringRef - Represent a constant reference to a string, i.e.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
add sub stmia L5 ldr r0 bl L_printf $stub Instead of a and a wouldn t it be better to do three moves *Return an aggregate type is even return S
void emitImportModule(const MCSymbolWasm *Sym, StringRef ImportModule) override
.import_module
WebAssemblyTargetStreamer(MCStreamer &S)
void emitTagType(const MCSymbolWasm *Sym) override
.tagtype
const wasm::WasmSignature * getSignature() const
const char * typeToString(wasm::ValType Type)
WebAssemblyTargetWasmStreamer(MCStreamer &S)
void emitValueType(wasm::ValType Type)
static void printTypes(formatted_raw_ostream &OS, ArrayRef< wasm::ValType > Types)
@ WASM_LIMITS_FLAG_HAS_MAX
LLVM Value Representation.
SmallVector< ValType, 4 > Params
Base class for the full range of assembler expressions which are needed for parsing.
void emitGlobalType(const MCSymbolWasm *Sym) override
.globaltype