Lines Matching refs:WebAssembly
59 Subtarget->hasAddr64() ? WebAssembly::SP64 : WebAssembly::SP32); in WebAssemblyTargetLowering()
61 addRegisterClass(MVT::i32, &WebAssembly::I32RegClass); in WebAssemblyTargetLowering()
62 addRegisterClass(MVT::i64, &WebAssembly::I64RegClass); in WebAssemblyTargetLowering()
63 addRegisterClass(MVT::f32, &WebAssembly::F32RegClass); in WebAssemblyTargetLowering()
64 addRegisterClass(MVT::f64, &WebAssembly::F64RegClass); in WebAssemblyTargetLowering()
66 addRegisterClass(MVT::v16i8, &WebAssembly::V128RegClass); in WebAssemblyTargetLowering()
67 addRegisterClass(MVT::v8i16, &WebAssembly::V128RegClass); in WebAssemblyTargetLowering()
68 addRegisterClass(MVT::v4i32, &WebAssembly::V128RegClass); in WebAssemblyTargetLowering()
69 addRegisterClass(MVT::v4f32, &WebAssembly::V128RegClass); in WebAssemblyTargetLowering()
70 addRegisterClass(MVT::v2i64, &WebAssembly::V128RegClass); in WebAssemblyTargetLowering()
71 addRegisterClass(MVT::v2f64, &WebAssembly::V128RegClass); in WebAssemblyTargetLowering()
74 addRegisterClass(MVT::v8f16, &WebAssembly::V128RegClass); in WebAssemblyTargetLowering()
77 addRegisterClass(MVT::externref, &WebAssembly::EXTERNREFRegClass); in WebAssemblyTargetLowering()
78 addRegisterClass(MVT::funcref, &WebAssembly::FUNCREFRegClass); in WebAssemblyTargetLowering()
80 addRegisterClass(MVT::exnref, &WebAssembly::EXNREFRegClass); in WebAssemblyTargetLowering()
379 if (AS == WebAssembly::WasmAddressSpace::WASM_ADDRESS_SPACE_EXTERNREF) in getPointerTy()
381 if (AS == WebAssembly::WasmAddressSpace::WASM_ADDRESS_SPACE_FUNCREF) in getPointerTy()
388 if (AS == WebAssembly::WasmAddressSpace::WASM_ADDRESS_SPACE_EXTERNREF) in getPointerMemTy()
390 if (AS == WebAssembly::WasmAddressSpace::WASM_ADDRESS_SPACE_FUNCREF) in getPointerMemTy()
434 return WebAssembly::createFastISel(FuncInfo, LibInfo); in createFastISel()
470 unsigned Abs = Float64 ? WebAssembly::ABS_F64 : WebAssembly::ABS_F32; in LowerFPToInt()
471 unsigned FConst = Float64 ? WebAssembly::CONST_F64 : WebAssembly::CONST_F32; in LowerFPToInt()
472 unsigned LT = Float64 ? WebAssembly::LT_F64 : WebAssembly::LT_F32; in LowerFPToInt()
473 unsigned GE = Float64 ? WebAssembly::GE_F64 : WebAssembly::GE_F32; in LowerFPToInt()
474 unsigned IConst = Int64 ? WebAssembly::CONST_I64 : WebAssembly::CONST_I32; in LowerFPToInt()
475 unsigned Eqz = WebAssembly::EQZ_I32; in LowerFPToInt()
476 unsigned And = WebAssembly::AND_I32; in LowerFPToInt()
506 CmpReg = MRI.createVirtualRegister(&WebAssembly::I32RegClass); in LowerFPToInt()
507 EqzReg = MRI.createVirtualRegister(&WebAssembly::I32RegClass); in LowerFPToInt()
527 MRI.createVirtualRegister(&WebAssembly::I32RegClass); in LowerFPToInt()
528 Register AndReg = MRI.createVirtualRegister(&WebAssembly::I32RegClass); in LowerFPToInt()
540 BuildMI(BB, DL, TII.get(WebAssembly::BR_IF)).addMBB(TrueMBB).addReg(EqzReg); in LowerFPToInt()
542 BuildMI(FalseMBB, DL, TII.get(WebAssembly::BR)).addMBB(DoneMBB); in LowerFPToInt()
558 assert(CallParams.getOpcode() == WebAssembly::CALL_PARAMS); in LowerCallResults()
559 assert(CallResults.getOpcode() == WebAssembly::CALL_RESULTS || in LowerCallResults()
560 CallResults.getOpcode() == WebAssembly::RET_CALL_RESULTS); in LowerCallResults()
564 bool IsRetCall = CallResults.getOpcode() == WebAssembly::RET_CALL_RESULTS; in LowerCallResults()
572 IsFuncrefCall = (TRC == &WebAssembly::FUNCREFRegClass); in LowerCallResults()
578 CallOp = WebAssembly::RET_CALL_INDIRECT; in LowerCallResults()
580 CallOp = WebAssembly::CALL_INDIRECT; in LowerCallResults()
582 CallOp = WebAssembly::RET_CALL; in LowerCallResults()
584 CallOp = WebAssembly::CALL; in LowerCallResults()
603 MF.getRegInfo().createVirtualRegister(&WebAssembly::I32RegClass); in LowerCallResults()
605 BuildMI(MF, DL, TII.get(WebAssembly::CONST_I32), RegZero).addImm(0); in LowerCallResults()
621 ? WebAssembly::getOrCreateFuncrefCallTableSymbol( in LowerCallResults()
623 : WebAssembly::getOrCreateFunctionTableSymbol( in LowerCallResults()
653 MCSymbolWasm *Table = WebAssembly::getOrCreateFuncrefCallTableSymbol( in LowerCallResults()
656 MF.getRegInfo().createVirtualRegister(&WebAssembly::I32RegClass); in LowerCallResults()
658 BuildMI(MF, DL, TII.get(WebAssembly::CONST_I32), RegZero).addImm(0); in LowerCallResults()
662 MF.getRegInfo().createVirtualRegister(&WebAssembly::FUNCREFRegClass); in LowerCallResults()
664 BuildMI(MF, DL, TII.get(WebAssembly::REF_NULL_FUNCREF), RegFuncref); in LowerCallResults()
668 BuildMI(MF, DL, TII.get(WebAssembly::TABLE_SET_FUNCREF)) in LowerCallResults()
686 case WebAssembly::FP_TO_SINT_I32_F32: in EmitInstrWithCustomInserter()
688 WebAssembly::I32_TRUNC_S_F32); in EmitInstrWithCustomInserter()
689 case WebAssembly::FP_TO_UINT_I32_F32: in EmitInstrWithCustomInserter()
691 WebAssembly::I32_TRUNC_U_F32); in EmitInstrWithCustomInserter()
692 case WebAssembly::FP_TO_SINT_I64_F32: in EmitInstrWithCustomInserter()
694 WebAssembly::I64_TRUNC_S_F32); in EmitInstrWithCustomInserter()
695 case WebAssembly::FP_TO_UINT_I64_F32: in EmitInstrWithCustomInserter()
697 WebAssembly::I64_TRUNC_U_F32); in EmitInstrWithCustomInserter()
698 case WebAssembly::FP_TO_SINT_I32_F64: in EmitInstrWithCustomInserter()
700 WebAssembly::I32_TRUNC_S_F64); in EmitInstrWithCustomInserter()
701 case WebAssembly::FP_TO_UINT_I32_F64: in EmitInstrWithCustomInserter()
703 WebAssembly::I32_TRUNC_U_F64); in EmitInstrWithCustomInserter()
704 case WebAssembly::FP_TO_SINT_I64_F64: in EmitInstrWithCustomInserter()
706 WebAssembly::I64_TRUNC_S_F64); in EmitInstrWithCustomInserter()
707 case WebAssembly::FP_TO_UINT_I64_F64: in EmitInstrWithCustomInserter()
709 WebAssembly::I64_TRUNC_U_F64); in EmitInstrWithCustomInserter()
710 case WebAssembly::CALL_RESULTS: in EmitInstrWithCustomInserter()
711 case WebAssembly::RET_CALL_RESULTS: in EmitInstrWithCustomInserter()
744 return std::make_pair(0U, &WebAssembly::V128RegClass); in getRegForInlineAsmConstraint()
748 return std::make_pair(0U, &WebAssembly::I32RegClass); in getRegForInlineAsmConstraint()
750 return std::make_pair(0U, &WebAssembly::I64RegClass); in getRegForInlineAsmConstraint()
755 return std::make_pair(0U, &WebAssembly::F32RegClass); in getRegForInlineAsmConstraint()
757 return std::make_pair(0U, &WebAssembly::F64RegClass); in getRegForInlineAsmConstraint()
1257 if (CLI.CB && WebAssembly::isWebAssemblyFuncrefType( in LowerCall()
1267 MCSymbolWasm *Table = WebAssembly::getOrCreateFuncrefCallTableSymbol( in LowerCall()
1277 WebAssembly::WasmAddressSpace::WASM_ADDRESS_SPACE_FUNCREF), in LowerCall()
1306 return WebAssembly::canLowerReturn(Outs.size(), Subtarget); in CanLowerReturn()
1314 assert(WebAssembly::canLowerReturn(Outs.size(), Subtarget) && in LowerReturn()
1351 MF.getRegInfo().addLiveIn(WebAssembly::ARGUMENTS); in LowerFormalArguments()
1515 return WebAssembly::isWasmVarAddressSpace(GA->getAddressSpace()); in IsWebAssemblyGlobal()
1560 if (WebAssembly::isWasmVarAddressSpace(SN->getAddressSpace())) in LowerStore()
1600 if (WebAssembly::isWasmVarAddressSpace(LN->getAddressSpace())) in LowerLoad()
1621 SDValue Copy(DAG.getMachineNode(VT == MVT::i32 ? WebAssembly::COPY_I32 in LowerCopyToReg()
1622 : WebAssembly::COPY_I64, in LowerCopyToReg()
1707 auto GlobalGet = PtrVT == MVT::i64 ? WebAssembly::GLOBAL_GET_I64 in LowerGlobalTLSAddress()
1708 : WebAssembly::GLOBAL_GET_I32; in LowerGlobalTLSAddress()
1740 if (!WebAssembly::isValidAddressSpace(GA->getAddressSpace())) in LowerGlobalAddress()
1748 !WebAssembly::isWebAssemblyTableType(GV->getValueType())) { in LowerGlobalAddress()