Home
last modified time | relevance | path

Searched refs:WebAssembly (Results 1 – 25 of 113) sorted by relevance

12345

/freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/MCTargetDesc/
H A DWebAssemblyMCTargetDesc.h40 namespace WebAssembly {
140 namespace WebAssembly {
150 case WebAssembly::NAME##_A32: \ in GetDefaultP2AlignAny()
151 case WebAssembly::NAME##_A64: \ in GetDefaultP2AlignAny()
152 case WebAssembly::NAME##_A32_S: \ in GetDefaultP2AlignAny()
153 case WebAssembly::NAME##_A64_S: in GetDefaultP2AlignAny()
288 case WebAssembly::CONST_I32: in isConst()
289 case WebAssembly::CONST_I32_S: in isConst()
290 case WebAssembly::CONST_I64: in isConst()
291 case WebAssembly::CONST_I64_S: in isConst()
[all …]
H A DWebAssemblyMCTypeUtilities.cpp20 std::optional<wasm::ValType> WebAssembly::parseType(StringRef Type) { in parseType()
34 WebAssembly::BlockType WebAssembly::parseBlockType(StringRef Type) { in parseBlockType()
36 return StringSwitch<WebAssembly::BlockType>(Type) in parseBlockType()
37 .Case("i32", WebAssembly::BlockType::I32) in parseBlockType()
38 .Case("i64", WebAssembly::BlockType::I64) in parseBlockType()
39 .Case("f32", WebAssembly::BlockType::F32) in parseBlockType()
40 .Case("f64", WebAssembly::BlockType::F64) in parseBlockType()
41 .Case("v128", WebAssembly::BlockType::V128) in parseBlockType()
42 .Case("funcref", WebAssembly::BlockType::Funcref) in parseBlockType()
43 .Case("externref", WebAssembly::BlockType::Externref) in parseBlockType()
[all …]
H A DWebAssemblyMCCodeEmitter.cpp84 if (Opcode == WebAssembly::BR_TABLE_I32_S || in encodeInstruction()
85 Opcode == WebAssembly::BR_TABLE_I64_S) in encodeInstruction()
87 if (Opcode == WebAssembly::BR_TABLE_I32 || in encodeInstruction()
88 Opcode == WebAssembly::BR_TABLE_I64) in encodeInstruction()
103 case WebAssembly::OPERAND_I32IMM: in encodeInstruction()
106 case WebAssembly::OPERAND_OFFSET32: in encodeInstruction()
109 case WebAssembly::OPERAND_I64IMM: in encodeInstruction()
112 case WebAssembly::OPERAND_SIGNATURE: in encodeInstruction()
113 case WebAssembly::OPERAND_VEC_I8IMM: in encodeInstruction()
117 case WebAssembly::OPERAND_VEC_I16IMM: in encodeInstruction()
[all …]
H A DWebAssemblyInstPrinter.cpp42 assert(Reg.id() != WebAssembly::UnusedReg); in printRegName()
52 case WebAssembly::CALL_INDIRECT_S: in printInst()
53 case WebAssembly::RET_CALL_INDIRECT_S: { in printInst()
96 if (MI->getOpcode() == WebAssembly::CALL_INDIRECT && in printInst()
134 case WebAssembly::LOOP: in printInst()
135 case WebAssembly::LOOP_S: in printInst()
140 case WebAssembly::BLOCK: in printInst()
141 case WebAssembly::BLOCK_S: in printInst()
145 case WebAssembly::TRY: in printInst()
146 case WebAssembly::TRY_S: in printInst()
[all …]
H A DWebAssemblyWasmObjectWriter.cpp70 auto Spec = WebAssembly::Specifier(Target.getSpecifier()); in getRelocType()
72 case WebAssembly::S_GOT: in getRelocType()
75 case WebAssembly::S_GOT_TLS: in getRelocType()
79 case WebAssembly::S_TBREL: in getRelocType()
83 case WebAssembly::S_TLSREL: in getRelocType()
87 case WebAssembly::S_MBREL: in getRelocType()
91 case WebAssembly::S_TYPEINDEX: in getRelocType()
93 case WebAssembly::S_None: in getRelocType()
95 case WebAssembly::S_FUNCINDEX: in getRelocType()
100 case WebAssembly::fixup_sleb128_i32: in getRelocType()
[all …]
H A DWebAssemblyMCAsmInfo.cpp25 {WebAssembly::S_TYPEINDEX, "TYPEINDEX"},
26 {WebAssembly::S_TBREL, "TBREL"},
27 {WebAssembly::S_MBREL, "MBREL"},
28 {WebAssembly::S_TLSREL, "TLSREL"},
29 {WebAssembly::S_GOT, "GOT"},
30 {WebAssembly::S_GOT_TLS, "GOT@TLS"},
31 {WebAssembly::S_FUNCINDEX, "FUNCINDEX"},
/freebsd/contrib/llvm-project/clang/lib/CodeGen/TargetBuiltins/
H A DWebAssembly.cpp24 case WebAssembly::BI__builtin_wasm_memory_size: { in EmitWebAssemblyBuiltinExpr()
31 case WebAssembly::BI__builtin_wasm_memory_grow: { in EmitWebAssemblyBuiltinExpr()
39 case WebAssembly::BI__builtin_wasm_tls_size: { in EmitWebAssemblyBuiltinExpr()
44 case WebAssembly::BI__builtin_wasm_tls_align: { in EmitWebAssemblyBuiltinExpr()
49 case WebAssembly::BI__builtin_wasm_tls_base: { in EmitWebAssemblyBuiltinExpr()
53 case WebAssembly::BI__builtin_wasm_throw: { in EmitWebAssemblyBuiltinExpr()
59 case WebAssembly::BI__builtin_wasm_rethrow: { in EmitWebAssemblyBuiltinExpr()
63 case WebAssembly::BI__builtin_wasm_memory_atomic_wait32: { in EmitWebAssemblyBuiltinExpr()
70 case WebAssembly::BI__builtin_wasm_memory_atomic_wait64: { in EmitWebAssemblyBuiltinExpr()
77 case WebAssembly::BI__builtin_wasm_memory_atomic_notify: { in EmitWebAssemblyBuiltinExpr()
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/
H A DWebAssemblyUtilities.cpp23 const char *const WebAssembly::CxaBeginCatchFn = "__cxa_begin_catch";
24 const char *const WebAssembly::CxaRethrowFn = "__cxa_rethrow";
25 const char *const WebAssembly::StdTerminateFn = "_ZSt9terminatev";
26 const char *const WebAssembly::PersonalityWrapperFn =
30 bool WebAssembly::isChild(const MachineInstr &MI, in isChild()
41 bool WebAssembly::mayThrow(const MachineInstr &MI) { in mayThrow()
43 case WebAssembly::THROW: in mayThrow()
44 case WebAssembly::THROW_S: in mayThrow()
45 case WebAssembly::THROW_REF: in mayThrow()
46 case WebAssembly::THROW_REF_S: in mayThrow()
[all …]
H A DWebAssemblyExplicitLocals.cpp89 if (RC == &WebAssembly::I32RegClass) in getDropOpcode()
90 return WebAssembly::DROP_I32; in getDropOpcode()
91 if (RC == &WebAssembly::I64RegClass) in getDropOpcode()
92 return WebAssembly::DROP_I64; in getDropOpcode()
93 if (RC == &WebAssembly::F32RegClass) in getDropOpcode()
94 return WebAssembly::DROP_F32; in getDropOpcode()
95 if (RC == &WebAssembly::F64RegClass) in getDropOpcode()
96 return WebAssembly::DROP_F64; in getDropOpcode()
97 if (RC == &WebAssembly::V128RegClass) in getDropOpcode()
98 return WebAssembly::DROP_V128; in getDropOpcode()
[all …]
H A DWebAssemblyFastISel.cpp397 Reg = createResultReg(Subtarget->hasAddr64() ? &WebAssembly::I64RegClass in materializeLoadStoreOperands()
398 : &WebAssembly::I32RegClass); in materializeLoadStoreOperands()
399 unsigned Opc = Subtarget->hasAddr64() ? WebAssembly::CONST_I64 in materializeLoadStoreOperands()
400 : WebAssembly::CONST_I32; in materializeLoadStoreOperands()
472 Register Imm = createResultReg(&WebAssembly::I32RegClass); in zeroExtendToI32()
474 TII.get(WebAssembly::CONST_I32), Imm) in zeroExtendToI32()
477 Register Result = createResultReg(&WebAssembly::I32RegClass); in zeroExtendToI32()
479 TII.get(WebAssembly::AND_I32), Result) in zeroExtendToI32()
502 Register Imm = createResultReg(&WebAssembly::I32RegClass); in signExtendToI32()
504 TII.get(WebAssembly::CONST_I32), Imm) in signExtendToI32()
[all …]
H A DWebAssemblyInstrInfo.cpp37 : WebAssemblyGenInstrInfo(WebAssembly::ADJCALLSTACKDOWN, in WebAssemblyInstrInfo()
38 WebAssembly::ADJCALLSTACKUP, in WebAssemblyInstrInfo()
39 WebAssembly::CATCHRET), in WebAssemblyInstrInfo()
45 case WebAssembly::CONST_I32: in isReallyTriviallyReMaterializable()
46 case WebAssembly::CONST_I64: in isReallyTriviallyReMaterializable()
47 case WebAssembly::CONST_F32: in isReallyTriviallyReMaterializable()
48 case WebAssembly::CONST_F64: in isReallyTriviallyReMaterializable()
71 unsigned CopyOpcode = WebAssembly::getCopyOpcodeForRegClass(RC); in copyPhysReg()
109 case WebAssembly::BR_IF: in analyzeBranch()
117 case WebAssembly::BR_UNLESS: in analyzeBranch()
[all …]
H A DWebAssemblyRegStackify.cpp88 if (!MI->definesRegister(WebAssembly::VALUE_STACK, /*TRI=*/nullptr)) in imposeStackOrdering()
89 MI->addOperand(MachineOperand::CreateReg(WebAssembly::VALUE_STACK, in imposeStackOrdering()
94 if (!MI->readsRegister(WebAssembly::VALUE_STACK, /*TRI=*/nullptr)) in imposeStackOrdering()
95 MI->addOperand(MachineOperand::CreateReg(WebAssembly::VALUE_STACK, in imposeStackOrdering()
109 if (RegClass == &WebAssembly::I32RegClass) { in convertImplicitDefToConstZero()
110 MI->setDesc(TII->get(WebAssembly::CONST_I32)); in convertImplicitDefToConstZero()
112 } else if (RegClass == &WebAssembly::I64RegClass) { in convertImplicitDefToConstZero()
113 MI->setDesc(TII->get(WebAssembly::CONST_I64)); in convertImplicitDefToConstZero()
115 } else if (RegClass == &WebAssembly::F32RegClass) { in convertImplicitDefToConstZero()
116 MI->setDesc(TII->get(WebAssembly::CONST_F32)); in convertImplicitDefToConstZero()
[all …]
H A DWebAssemblyCFGStackify.cpp41 using WebAssembly::SortRegionInfo;
335 if (MI.getOpcode() == WebAssembly::LOOP) { in placeBlockMarker()
349 if (MI.getOpcode() == WebAssembly::BLOCK || in placeBlockMarker()
350 MI.getOpcode() == WebAssembly::TRY || in placeBlockMarker()
351 MI.getOpcode() == WebAssembly::TRY_TABLE) { in placeBlockMarker()
362 if (MI.getOpcode() == WebAssembly::END_BLOCK || in placeBlockMarker()
363 MI.getOpcode() == WebAssembly::END_LOOP || in placeBlockMarker()
364 MI.getOpcode() == WebAssembly::END_TRY || in placeBlockMarker()
365 MI.getOpcode() == WebAssembly::END_TRY_TABLE) in placeBlockMarker()
379 if (WebAssembly::isChild(*std::prev(I), MFI)) in placeBlockMarker()
[all …]
H A DWebAssemblyLateEHPrepare.cpp131 if (!WebAssembly::WasmUseLegacyEH) in runOnMachineFunction()
161 if (TI->getOpcode() == WebAssembly::CATCHRET) in recordCatchRetBBs()
183 if (WebAssembly::isCatch(MI.getOpcode())) in hoistCatches()
218 !WebAssembly::isCatch(InsertPos->getOpcode())) { in addCatchAlls()
220 unsigned CatchAllOpcode = WebAssembly::WasmUseLegacyEH in addCatchAlls()
221 ? WebAssembly::CATCH_ALL_LEGACY in addCatchAlls()
222 : WebAssembly::CATCH_ALL; in addCatchAlls()
244 case WebAssembly::CATCHRET: { in replaceFuncletReturns()
248 BuildMI(MBB, TI, TI->getDebugLoc(), TII.get(WebAssembly::BR)) in replaceFuncletReturns()
254 case WebAssembly::RETHROW: in replaceFuncletReturns()
[all …]
H A DWebAssemblyAsmPrinter.cpp82 assert(WAReg != WebAssembly::UnusedReg); in regToString()
163 WebAssembly::WasmEnableEmEH || WebAssembly::WasmEnableEmSjLj; in getMCSymbolForFunction()
171 WebAssembly::signatureToString(Sig); in getMCSymbolForFunction()
183 if (!WebAssembly::isWasmVarAddressSpace(GV->getAddressSpace())) { in emitGlobalVariable()
205 WebAssembly::wasmSymbolSetType(Sym, GlobalVT, VTs); in emitGlobalVariable()
274 WebAssembly::getLibcallSignature(Subtarget, Name, Returns, Params); in getOrCreateWasmSymbol()
407 WebAssembly::getOrCreateFunctionTableSymbol(OutContext, Subtarget); in emitEndOfAsmFile()
415 !WebAssembly::isWasmVarAddressSpace(G.getAddressSpace()) && in emitEndOfAsmFile()
597 MCSymbolRefExpr::create(Sym, WebAssembly::S_FUNCINDEX, OutContext), in EmitFunctionAttributes()
648 case WebAssembly::ARGUMENT_i32: in emitInstruction()
[all …]
H A DWebAssemblyRegisterInfo.cpp45 for (auto Reg : {WebAssembly::SP32, WebAssembly::SP64, WebAssembly::FP32, in getReservedRegs()
46 WebAssembly::FP64}) in getReservedRegs()
71 unsigned AddrOperandNum = WebAssembly::getNamedOperandIdx( in eliminateFrameIndex()
72 MI.getOpcode(), WebAssembly::OpName::addr); in eliminateFrameIndex()
74 unsigned OffsetOperandNum = WebAssembly::getNamedOperandIdx( in eliminateFrameIndex()
75 MI.getOpcode(), WebAssembly::OpName::off); in eliminateFrameIndex()
145 /* !hasFP */ {WebAssembly::SP32, WebAssembly::SP64}, in getFrameRegister()
146 /* hasFP */ {WebAssembly::FP32, WebAssembly::FP64}}; in getFrameRegister()
156 return &WebAssembly::I64RegClass; in getPointerRegClass()
157 return &WebAssembly::I32RegClass; in getPointerRegClass()
H A DWebAssemblyFrameLowering.cpp63 if (!AI || !WebAssembly::isWasmVarAddressSpace(AI->getAddressSpace())) in getLocalForStackObject()
181 ? WebAssembly::SP64 in getSPReg()
182 : WebAssembly::SP32; in getSPReg()
187 ? WebAssembly::FP64 in getFPReg()
188 : WebAssembly::FP32; in getFPReg()
194 ? WebAssembly::CONST_I64 in getOpcConst()
195 : WebAssembly::CONST_I32; in getOpcConst()
200 ? WebAssembly::ADD_I64 in getOpcAdd()
201 : WebAssembly::ADD_I32; in getOpcAdd()
206 ? WebAssembly::SUB_I64 in getOpcSub()
[all …]
H A DWebAssemblyMCInstLower.cpp54 if (WebAssembly::isWasmVarAddressSpace(Global->getAddressSpace()) && in GetGlobalAddressSymbol()
63 WebAssembly::wasmSymbolSetType(WasmSym, GlobalVT, VTs); in GetGlobalAddressSymbol()
93 auto Spec = WebAssembly::S_None; in lowerSymbolOperand()
100 Spec = WebAssembly::S_GOT_TLS; in lowerSymbolOperand()
103 Spec = WebAssembly::S_GOT; in lowerSymbolOperand()
106 Spec = WebAssembly::S_MBREL; in lowerSymbolOperand()
109 Spec = WebAssembly::S_TLSREL; in lowerSymbolOperand()
112 Spec = WebAssembly::S_TBREL; in lowerSymbolOperand()
151 MCSymbolRefExpr::create(WasmSym, WebAssembly::S_TYPEINDEX, Ctx); in lowerTypeIndexOperand()
203 if (Info.OperandType == WebAssembly::OPERAND_TYPEINDEX) { in lower()
[all …]
H A DWebAssemblyISelDAGToDAG.cpp111 assert(Tag == WebAssembly::CPP_EXCEPTION || WebAssembly::C_LONGJMP); in getTagSymNode()
115 const char *SymName = Tag == WebAssembly::CPP_EXCEPTION in getTagSymNode()
130 auto GlobalGetIns = PtrVT == MVT::i64 ? WebAssembly::GLOBAL_GET_I64 in Select()
131 : WebAssembly::GLOBAL_GET_I32; in Select()
148 Fence = CurDAG->getMachineNode(WebAssembly::COMPILER_FENCE, in Select()
158 WebAssembly::ATOMIC_FENCE, in Select()
213 unsigned CatchOpcode = WebAssembly::WasmUseLegacyEH in Select()
214 ? WebAssembly::CATCH_LEGACY in Select()
215 : WebAssembly::CATCH; in Select()
240 CurDAG->getMachineNode(WebAssembly::THROW, DL, in Select()
[all …]
H A DWebAssemblyReplacePhysRegs.cpp76 for (unsigned PReg = WebAssembly::NoRegister + 1; in runOnMachineFunction()
77 PReg < WebAssembly::NUM_TARGET_REGS; ++PReg) { in runOnMachineFunction()
79 if (PReg == WebAssembly::VALUE_STACK || PReg == WebAssembly::ARGUMENTS) in runOnMachineFunction()
84 unsigned VReg = WebAssembly::NoRegister; in runOnMachineFunction()
88 if (VReg == WebAssembly::NoRegister) { in runOnMachineFunction()
H A DREADME.txt1 //===-- README.txt - Notes for WebAssembly code gen -----------------------===//
3 The object format emitted by the WebAssembly backed is documented in:
5 * https://github.com/WebAssembly/tool-conventions/blob/main/Linking.md
9 * https://github.com/WebAssembly/tool-conventions/blob/main/BasicCABI.md
11 For more information on WebAssembly itself, see the home page:
16 includes standard libraries, tools, and packaging for producing WebAssembly
20 on musl, for producing WebAssembly applications that use the WASI ABI.
22 Rust provides WebAssembly support integrated into Cargo. There are two
33 encoding of WebAssembly itself:
34 * https://github.com/WebAssembly/design/blob/main/Semantics.md
[all …]
/freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/Utils/
H A DWebAssemblyUtilities.cpp
H A DWebAssemblyTypeUtilities.cpp23 MVT WebAssembly::parseMVT(StringRef Type) { in parseMVT()
40 wasm::ValType WebAssembly::toValType(MVT Type) { in toValType()
69 void WebAssembly::wasmSymbolSetType(MCSymbolWasm *Sym, const Type *GlobalVT, in wasmSymbolSetType()
78 if (WebAssembly::isWebAssemblyTableType(GlobalVT)) { in wasmSymbolSetType()
81 if (WebAssembly::isWebAssemblyExternrefType(ElTy)) in wasmSymbolSetType()
83 else if (WebAssembly::isWebAssemblyFuncrefType(ElTy)) in wasmSymbolSetType()
88 ValTy = WebAssembly::toValType(VTs[0]); in wasmSymbolSetType()
/freebsd/contrib/llvm-project/llvm/lib/Target/WebAssembly/Disassembler/
H A DWebAssemblyDisassembler.cpp154 outs() << WebAssembly::anyTypeToString(Type); in onSymbolStart()
201 case WebAssembly::OPERAND_BASIC_BLOCK: in getInstruction()
202 case WebAssembly::OPERAND_LOCAL: in getInstruction()
203 case WebAssembly::OPERAND_GLOBAL: in getInstruction()
204 case WebAssembly::OPERAND_FUNCTION32: in getInstruction()
205 case WebAssembly::OPERAND_TABLE: in getInstruction()
206 case WebAssembly::OPERAND_OFFSET32: in getInstruction()
207 case WebAssembly::OPERAND_OFFSET64: in getInstruction()
208 case WebAssembly::OPERAND_P2ALIGN: in getInstruction()
209 case WebAssembly::OPERAND_TYPEINDEX: in getInstruction()
[all …]
/freebsd/contrib/llvm-project/clang/lib/Driver/ToolChains/
H A DWebAssembly.cpp30 std::string WebAssembly::getMultiarchTriple(const Driver &D, in getMultiarchTriple()
241 WebAssembly::WebAssembly(const Driver &D, const llvm::Triple &Triple, in WebAssembly() function in WebAssembly
270 const char *WebAssembly::getDefaultLinker() const { in getDefaultLinker()
276 bool WebAssembly::IsMathErrnoDefault() const { return false; } in IsMathErrnoDefault()
278 bool WebAssembly::IsObjCNonFragileABIDefault() const { return true; } in IsObjCNonFragileABIDefault()
280 bool WebAssembly::UseObjCMixedDispatch() const { return true; } in UseObjCMixedDispatch()
282 bool WebAssembly::isPICDefault() const { return false; } in isPICDefault()
284 bool WebAssembly::isPIEDefault(const llvm::opt::ArgList &Args) const { in isPIEDefault()
288 bool WebAssembly::isPICDefaultForced() const { return false; } in isPICDefaultForced()
290 bool WebAssembly::hasBlocksRuntime() const { return false; } in hasBlocksRuntime()
[all …]

12345