Lines Matching defs:imm
1223 const TagIndexImmediate<validate>& imm, Control* block,
1256 wasm::ObjectAccess::ElementOffsetInTaggedFixedArray(imm.index), {});
1271 GetExceptionValues(decoder, __ cache_state()->stack_state.back(), imm.tag);
1786 int32_t imm = rhs_slot.i32_const();
1796 CallEmitFn(fnImm, dst, lhs, imm);
2272 const IndexImmediate<validate>& imm) {
2273 auto local_slot = __ cache_state()->stack_state[imm.index];
2336 const IndexImmediate<validate>& imm) {
2337 LocalSet(imm.index, false);
2341 const IndexImmediate<validate>& imm) {
2342 LocalSet(imm.index, true);
2403 const GlobalIndexImmediate<validate>& imm) {
2404 const auto* global = &env_->module->globals[imm.index];
2430 imm.global->offset),
2446 const GlobalIndexImmediate<validate>& imm) {
2447 auto* global = &env_->module->globals[imm.index];
2473 imm.global->offset),
2486 const IndexImmediate<validate>& imm) {
2491 __ LoadConstant(table_index_reg, WasmValue(imm.index));
2496 ValueKind result_kind = env_->module->tables[imm.index].type.kind();
2510 const IndexImmediate<validate>& imm) {
2515 __ LoadConstant(table_index_reg, WasmValue(imm.index));
2521 ValueKind table_kind = env_->module->tables[imm.index].type.kind();
2710 void BrTable(FullDecoder* decoder, const BranchTableImmediate<validate>& imm,
2714 BranchTableIterator<validate> table_iterator(decoder, imm);
2717 if (imm.table_count > 0) {
2719 __ LoadConstant(tmp, WasmValue(uint32_t{imm.table_count}));
2724 GenerateBrTable(decoder, tmp, value, 0, imm.table_count, &table_iterator,
2996 const MemoryAccessImmediate<validate>& imm,
3002 uintptr_t offset = imm.offset;
3050 const MemoryAccessImmediate<validate>& imm,
3064 Register index = BoundsCheckMem(decoder, access_size, imm.offset,
3068 uintptr_t offset = imm.offset;
3094 const Value& _index, const MemoryAccessImmediate<validate>& imm,
3103 Register index = BoundsCheckMem(decoder, type.size(), imm.offset,
3107 uintptr_t offset = imm.offset;
3130 const MemoryAccessImmediate<validate>& imm,
3138 uintptr_t offset = imm.offset;
3149 index = BoundsCheckMem(decoder, type.size(), imm.offset, full_index,
3176 const MemoryAccessImmediate<validate>& imm,
3182 Register index = BoundsCheckMem(decoder, type.size(), imm.offset,
3186 uintptr_t offset = imm.offset;
3353 const CallFunctionImmediate<validate>& imm,
3355 CallDirect(decoder, imm, args, nullptr, kNoTailCall);
3359 const CallIndirectImmediate<validate>& imm,
3361 CallIndirect(decoder, index_val, imm, kNoTailCall);
3371 const CallFunctionImmediate<validate>& imm,
3374 CallDirect(decoder, imm, args, nullptr, kTailCall);
3378 const CallIndirectImmediate<validate>& imm,
3381 CallIndirect(decoder, index_val, imm, kTailCall);
3476 int32_t imm = rhs_slot.i32_const();
3481 CallEmitFn(fnImm, dst, operand, imm);
4025 const SimdLaneImmediate<validate>& imm) {
4032 fn(dst, lhs, imm.lane);
4038 const SimdLaneImmediate<validate>& imm) {
4057 fn(dst, src1, src2, imm.lane);
4062 const SimdLaneImmediate<validate>& imm,
4074 imm); \
4092 imm); \
4106 void S128Const(FullDecoder* decoder, const Simd128Immediate<validate>& imm,
4113 bool all_zeroes = std::all_of(std::begin(imm.value), std::end(imm.value),
4115 bool all_ones = std::all_of(std::begin(imm.value), std::end(imm.value),
4123 __ LiftoffAssembler::emit_s128_const(dst, imm.value);
4129 const Simd128Immediate<validate>& imm,
4141 memcpy(shuffle, imm.value, sizeof(shuffle));
4402 void Throw(FullDecoder* decoder, const TagIndexImmediate<validate>& imm,
4407 int encoded_size = WasmExceptionPackage::GetEncodedSize(imm.tag);
4429 auto* sig = imm.tag->sig;
4444 wasm::ObjectAccess::ElementOffsetInTaggedFixedArray(imm.index), {});
4459 const MemoryAccessImmediate<validate>& imm) {
4463 Register index = BoundsCheckMem(decoder, type.size(), imm.offset,
4468 AlignmentCheckMem(decoder, type.size(), imm.offset, index, pinned);
4469 uintptr_t offset = imm.offset;
4482 const MemoryAccessImmediate<validate>& imm) {
4485 Register index = BoundsCheckMem(decoder, type.size(), imm.offset,
4490 AlignmentCheckMem(decoder, type.size(), imm.offset, index, pinned);
4491 uintptr_t offset = imm.offset;
4506 const MemoryAccessImmediate<validate>& imm,
4531 Register index = BoundsCheckMem(decoder, type.size(), imm.offset,
4536 AlignmentCheckMem(decoder, type.size(), imm.offset, index, pinned);
4539 uintptr_t offset = imm.offset;
4547 const MemoryAccessImmediate<validate>& imm) {
4555 Register index = BoundsCheckMem(decoder, type.size(), imm.offset,
4559 AlignmentCheckMem(decoder, type.size(), imm.offset, index, pinned);
4561 uintptr_t offset = imm.offset;
4590 Register index = BoundsCheckMem(decoder, type.size(), imm.offset,
4594 AlignmentCheckMem(decoder, type.size(), imm.offset, index, pinned);
4596 uintptr_t offset = imm.offset;
4632 const MemoryAccessImmediate<validate>& imm) {
4635 BoundsCheckMem(decoder, value_kind_size(kind), imm.offset, full_index,
4639 AlignmentCheckMem(decoder, value_kind_size(kind), imm.offset, index_reg,
4642 uintptr_t offset = imm.offset;
4680 const MemoryAccessImmediate<validate>& imm) {
4682 Register index_reg = BoundsCheckMem(decoder, kInt32Size, imm.offset,
4686 AlignmentCheckMem(decoder, kInt32Size, imm.offset, index_reg, pinned);
4688 uintptr_t offset = imm.offset;
4787 const MemoryAccessImmediate<validate>& imm, Value* result) {
4791 AtomicStoreMem(decoder, StoreType::type, imm); \
4799 AtomicLoadMem(decoder, LoadType::type, imm); \
4807 AtomicBinop(decoder, StoreType::type, imm, &LiftoffAssembler::Atomic##op); \
4815 AtomicCompareExchange(decoder, StoreType::type, imm); \
4822 AtomicWait(decoder, kI32, imm);
4825 AtomicWait(decoder, kI64, imm);
4828 AtomicNotify(decoder, imm);
4889 const MemoryInitImmediate<validate>& imm, const Value&,
4917 __ LoadConstant(segment_index, WasmValue(imm.data_segment.index));
4931 void DataDrop(FullDecoder* decoder, const IndexImmediate<validate>& imm) {
4943 WasmValue(imm.index << value_kind_size_log2(kI32)));
4953 const MemoryCopyImmediate<validate>& imm, const Value&,
4991 const MemoryIndexImmediate<validate>& imm, const Value&,
5033 void TableInit(FullDecoder* decoder, const TableInitImmediate<validate>& imm,
5039 LoadSmi(table_index_reg, imm.table.index);
5044 LoadSmi(segment_index_reg, imm.element_segment.index);
5063 void ElemDrop(FullDecoder* decoder, const IndexImmediate<validate>& imm) {
5072 __ LoadConstant(seg_index, WasmValue(imm.index));
5082 void TableCopy(FullDecoder* decoder, const TableCopyImmediate<validate>& imm,
5088 LoadSmi(table_dst_index_reg, imm.table_dst.index);
5094 LoadSmi(table_src_index_reg, imm.table_src.index);
5113 void TableGrow(FullDecoder* decoder, const IndexImmediate<validate>& imm,
5119 LoadSmi(table_index_reg, imm.index);
5138 void TableSize(FullDecoder* decoder, const IndexImmediate<validate>& imm,
5150 ObjectAccess::ElementOffsetInTaggedFixedArray(imm.index), pinned);
5165 void TableFill(FullDecoder* decoder, const IndexImmediate<validate>& imm,
5171 LoadSmi(table_index_reg, imm.index);
5189 const StructIndexImmediate<validate>& imm, const Value& rtt,
5201 for (uint32_t i = imm.struct_type->field_count(); i > 0;) {
5203 int offset = StructFieldOffset(imm.struct_type, i);
5204 ValueKind field_kind = imm.struct_type->field(i).kind();
5225 const StructIndexImmediate<validate>& imm,
5227 StructNew(decoder, imm, rtt, true);
5231 const StructIndexImmediate<validate>& imm,
5233 StructNew(decoder, imm, rtt, false);
5266 void ArrayNew(FullDecoder* decoder, const ArrayIndexImmediate<validate>& imm,
5275 WasmArray::MaxLength(imm.array_type));
5277 ValueKind elem_kind = imm.array_type->element_type().kind();
5336 const ArrayIndexImmediate<validate>& imm,
5339 ArrayNew(decoder, imm, rtt.type.kind(), true);
5343 const ArrayIndexImmediate<validate>& imm,
5345 ArrayNew(decoder, imm, rtt.type.kind(), false);
5349 const ArrayIndexImmediate<validate>& imm,
5356 ValueKind elem_kind = imm.array_type->element_type().kind();
5371 const ArrayIndexImmediate<validate>& imm,
5375 DCHECK_EQ(reg_class_for(imm.array_type->element_type().kind()),
5381 ValueKind elem_kind = imm.array_type->element_type().kind();
5421 void ArrayInit(FullDecoder* decoder, const ArrayIndexImmediate<validate>& imm,
5425 ValueKind elem_kind = imm.array_type->element_type().kind();
5917 const CallFunctionImmediate<validate>& imm,
5919 MostlySmallValueKindSig sig(compilation_zone_, imm.sig);
5925 compiler::GetWasmCallDescriptor(compilation_zone_, imm.sig);
5940 if (imm.index < env_->module->num_imported_functions) {
5950 imm.index * sizeof(Address), kPointerLoadType, pinned);
5958 ObjectAccess::ElementOffsetInTaggedFixedArray(imm.index), pinned);
5987 Address addr = static_cast<Address>(imm.index);
6005 const CallIndirectImmediate<validate>& imm,
6007 MostlySmallValueKindSig sig(compilation_zone_, imm.sig);
6021 if (imm.table_imm.index != 0) {
6030 ObjectAccess::ElementOffsetInTaggedFixedArray(imm.table_imm.index),
6039 env_->module->canonicalized_type_ids[imm.sig_imm.index];
6045 if (imm.table_imm.index == 0) {
6059 if (imm.table_imm.index == 0) {
6092 if (imm.table_imm.index == 0) {
6114 if (imm.table_imm.index == 0) {
6127 compiler::GetWasmCallDescriptor(compilation_zone_, imm.sig);