Lines Matching refs:buffer
29 size_t EmitSection(SectionCode code, ZoneBuffer& buffer) { in EmitSection() argument
31 buffer.write_u8(code); in EmitSection()
34 return buffer.reserve_u32v(); in EmitSection()
38 void FixupSection(ZoneBuffer& buffer, size_t start) { in FixupSection() argument
39 buffer.patch_u32v(start, static_cast<uint32_t>(buffer.offset() - start - in FixupSection()
179 void WasmFunctionBuilder::WriteSignature(ZoneBuffer& buffer) const { in WriteSignature()
180 buffer.write_u32v(signature_index_); in WriteSignature()
183 void WasmFunctionBuilder::WriteBody(ZoneBuffer& buffer) const { in WriteBody()
185 buffer.write_size(locals_size + body_.size()); in WriteBody()
186 buffer.EnsureSpace(locals_size); in WriteBody()
187 byte** ptr = buffer.pos_ptr(); in WriteBody()
191 size_t base = buffer.offset(); in WriteBody()
192 buffer.write(body_.begin(), body_.size()); in WriteBody()
194 buffer.patch_u32v( in WriteBody()
202 void WasmFunctionBuilder::WriteAsmWasmOffsetTable(ZoneBuffer& buffer) const { in WriteAsmWasmOffsetTable()
204 buffer.write_size(0); in WriteAsmWasmOffsetTable()
210 buffer.write_size(asm_offsets_.size() + locals_enc_size + func_start_size); in WriteAsmWasmOffsetTable()
213 buffer.write_u32v(static_cast<uint32_t>(locals_.Size())); in WriteAsmWasmOffsetTable()
215 buffer.write_u32v(asm_func_start_source_position_); in WriteAsmWasmOffsetTable()
216 buffer.write(asm_offsets_.begin(), asm_offsets_.size()); in WriteAsmWasmOffsetTable()
315 void WasmModuleBuilder::WriteTo(ZoneBuffer& buffer) const { in WriteTo()
317 buffer.write_u32(kWasmMagic); in WriteTo()
318 buffer.write_u32(kWasmVersion); in WriteTo()
322 size_t start = EmitSection(kTypeSectionCode, buffer); in WriteTo()
323 buffer.write_size(signatures_.size()); in WriteTo()
326 buffer.write_u8(kWasmFunctionTypeCode); in WriteTo()
327 buffer.write_size(sig->parameter_count()); in WriteTo()
329 buffer.write_u8(ValueTypes::ValueTypeCodeFor(param)); in WriteTo()
331 buffer.write_size(sig->return_count()); in WriteTo()
333 buffer.write_u8(ValueTypes::ValueTypeCodeFor(ret)); in WriteTo()
336 FixupSection(buffer, start); in WriteTo()
341 size_t start = EmitSection(kImportSectionCode, buffer); in WriteTo()
342 buffer.write_size(global_imports_.size() + function_imports_.size()); in WriteTo()
344 buffer.write_u32v(0); // module name (length) in WriteTo()
345 buffer.write_string(import.name); // field name in WriteTo()
346 buffer.write_u8(kExternalGlobal); in WriteTo()
347 buffer.write_u8(import.type_code); in WriteTo()
348 buffer.write_u8(0); // immutable in WriteTo()
351 buffer.write_u32v(0); // module name (length) in WriteTo()
352 buffer.write_string(import.name); // field name in WriteTo()
353 buffer.write_u8(kExternalFunction); in WriteTo()
354 buffer.write_u32v(import.sig_index); in WriteTo()
356 FixupSection(buffer, start); in WriteTo()
362 size_t start = EmitSection(kFunctionSectionCode, buffer); in WriteTo()
363 buffer.write_size(functions_.size()); in WriteTo()
365 function->WriteSignature(buffer); in WriteTo()
368 FixupSection(buffer, start); in WriteTo()
373 size_t start = EmitSection(kTableSectionCode, buffer); in WriteTo()
374 buffer.write_u8(1); // table count in WriteTo()
375 buffer.write_u8(kLocalAnyFunc); in WriteTo()
376 buffer.write_u8(kHasMaximumFlag); in WriteTo()
377 buffer.write_size(indirect_functions_.size()); in WriteTo()
378 buffer.write_size(indirect_functions_.size()); in WriteTo()
379 FixupSection(buffer, start); in WriteTo()
384 size_t start = EmitSection(kMemorySectionCode, buffer); in WriteTo()
385 buffer.write_u8(1); // memory count in WriteTo()
387 buffer.write_u8(has_max_memory_size_ ? MemoryFlags::kSharedAndMaximum in WriteTo()
390 buffer.write_u8(has_max_memory_size_ ? MemoryFlags::kMaximum in WriteTo()
393 buffer.write_u32v(min_memory_size_); in WriteTo()
395 buffer.write_u32v(max_memory_size_); in WriteTo()
397 FixupSection(buffer, start); in WriteTo()
402 size_t start = EmitSection(kGlobalSectionCode, buffer); in WriteTo()
403 buffer.write_size(globals_.size()); in WriteTo()
406 buffer.write_u8(ValueTypes::ValueTypeCodeFor(global.type)); in WriteTo()
407 buffer.write_u8(global.mutability ? 1 : 0); in WriteTo()
411 buffer.write_u8(kExprI32Const); in WriteTo()
412 buffer.write_i32v(global.init.val.i32_const); in WriteTo()
416 buffer.write_u8(kExprI64Const); in WriteTo()
417 buffer.write_i64v(global.init.val.i64_const); in WriteTo()
421 buffer.write_u8(kExprF32Const); in WriteTo()
422 buffer.write_f32(global.init.val.f32_const); in WriteTo()
426 buffer.write_u8(kExprF64Const); in WriteTo()
427 buffer.write_f64(global.init.val.f64_const); in WriteTo()
430 buffer.write_u8(kExprGetGlobal); in WriteTo()
431 buffer.write_u32v(global.init.val.global_index); in WriteTo()
437 buffer.write_u8(kExprI32Const); in WriteTo()
439 buffer.write_u8(0); in WriteTo()
442 buffer.write_u8(kExprI64Const); in WriteTo()
444 buffer.write_u8(0); in WriteTo()
447 buffer.write_u8(kExprF32Const); in WriteTo()
448 buffer.write_f32(0.f); in WriteTo()
451 buffer.write_u8(kExprF64Const); in WriteTo()
452 buffer.write_f64(0.); in WriteTo()
459 buffer.write_u8(kExprEnd); in WriteTo()
461 FixupSection(buffer, start); in WriteTo()
466 size_t start = EmitSection(kExportSectionCode, buffer); in WriteTo()
467 buffer.write_size(function_exports_.size()); in WriteTo()
469 buffer.write_string(function_export.name); in WriteTo()
470 buffer.write_u8(kExternalFunction); in WriteTo()
471 buffer.write_size(function_export.function_index + in WriteTo()
474 FixupSection(buffer, start); in WriteTo()
479 size_t start = EmitSection(kStartSectionCode, buffer); in WriteTo()
480 buffer.write_size(start_function_index_ + function_imports_.size()); in WriteTo()
481 FixupSection(buffer, start); in WriteTo()
486 size_t start = EmitSection(kElementSectionCode, buffer); in WriteTo()
487 buffer.write_u8(1); // count of entries in WriteTo()
488 buffer.write_u8(0); // table index in WriteTo()
489 buffer.write_u8(kExprI32Const); // offset in WriteTo()
490 buffer.write_u32v(0); in WriteTo()
491 buffer.write_u8(kExprEnd); in WriteTo()
492 buffer.write_size(indirect_functions_.size()); // element count in WriteTo()
495 buffer.write_size(index + function_imports_.size()); in WriteTo()
498 FixupSection(buffer, start); in WriteTo()
503 size_t start = EmitSection(kCodeSectionCode, buffer); in WriteTo()
504 buffer.write_size(functions_.size()); in WriteTo()
506 function->WriteBody(buffer); in WriteTo()
508 FixupSection(buffer, start); in WriteTo()
513 size_t start = EmitSection(kDataSectionCode, buffer); in WriteTo()
514 buffer.write_size(data_segments_.size()); in WriteTo()
517 buffer.write_u8(0); // linear memory segment in WriteTo()
518 buffer.write_u8(kExprI32Const); // initializer expression for dest in WriteTo()
519 buffer.write_u32v(segment.dest); in WriteTo()
520 buffer.write_u8(kExprEnd); in WriteTo()
521 buffer.write_u32v(static_cast<uint32_t>(segment.data.size())); in WriteTo()
522 buffer.write(&segment.data[0], segment.data.size()); in WriteTo()
524 FixupSection(buffer, start); in WriteTo()
530 buffer.write_u8(kUnknownSectionCode); in WriteTo()
532 size_t start = buffer.reserve_u32v(); in WriteTo()
534 buffer.write_size(4); in WriteTo()
535 buffer.write(reinterpret_cast<const byte*>("name"), 4); in WriteTo()
537 buffer.write_u8(NameSectionKindCode::kFunction); in WriteTo()
539 size_t functions_start = buffer.reserve_u32v(); in WriteTo()
543 buffer.write_size(num_imports + num_function_names); in WriteTo()
548 buffer.write_u32v(function_index); in WriteTo()
549 buffer.write_string(import->name); in WriteTo()
556 buffer.write_u32v(function_index); in WriteTo()
557 buffer.write_string(function->name_); in WriteTo()
562 FixupSection(buffer, functions_start); in WriteTo()
563 FixupSection(buffer, start); in WriteTo()
567 void WasmModuleBuilder::WriteAsmJsOffsetTable(ZoneBuffer& buffer) const { in WriteAsmJsOffsetTable()
569 buffer.write_size(functions_.size()); in WriteAsmJsOffsetTable()
572 function->WriteAsmWasmOffsetTable(buffer); in WriteAsmJsOffsetTable()
575 buffer.write_u8(0); in WriteAsmJsOffsetTable()