| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/signature.h" | 5 #include "src/signature.h" |
| 6 | 6 |
| 7 #include "src/handles.h" | 7 #include "src/handles.h" |
| 8 #include "src/v8.h" | 8 #include "src/v8.h" |
| 9 #include "src/zone-containers.h" | 9 #include "src/zone-containers.h" |
| 10 | 10 |
| (...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 454 size = size >> 7; | 454 size = size >> 7; |
| 455 } | 455 } |
| 456 } | 456 } |
| 457 } | 457 } |
| 458 }; | 458 }; |
| 459 | 459 |
| 460 | 460 |
| 461 WasmModuleIndex* WasmModuleWriter::WriteTo(Zone* zone) const { | 461 WasmModuleIndex* WasmModuleWriter::WriteTo(Zone* zone) const { |
| 462 Sizes sizes = {0, 0}; | 462 Sizes sizes = {0, 0}; |
| 463 | 463 |
| 464 sizes.Add(2 * sizeof(uint32_t), 0); // header |
| 465 |
| 464 sizes.Add(1, 0); | 466 sizes.Add(1, 0); |
| 465 sizes.Add(kDeclMemorySize, 0); | 467 sizes.Add(kDeclMemorySize, 0); |
| 466 | 468 |
| 467 sizes.AddSection(signatures_.size()); | 469 sizes.AddSection(signatures_.size()); |
| 468 for (auto sig : signatures_) { | 470 for (auto sig : signatures_) { |
| 469 sizes.Add(2 + sig->parameter_count(), 0); | 471 sizes.Add(2 + sig->parameter_count(), 0); |
| 470 } | 472 } |
| 471 | 473 |
| 472 sizes.AddSection(globals_.size()); | 474 sizes.AddSection(globals_.size()); |
| 473 if (globals_.size() > 0) { | 475 if (globals_.size() > 0) { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 488 sizes.AddSection(indirect_functions_.size()); | 490 sizes.AddSection(indirect_functions_.size()); |
| 489 sizes.Add(2 * static_cast<uint32_t>(indirect_functions_.size()), 0); | 491 sizes.Add(2 * static_cast<uint32_t>(indirect_functions_.size()), 0); |
| 490 | 492 |
| 491 if (sizes.body_size > 0) sizes.Add(1, 0); | 493 if (sizes.body_size > 0) sizes.Add(1, 0); |
| 492 | 494 |
| 493 ZoneVector<uint8_t> buffer_vector(sizes.total(), zone); | 495 ZoneVector<uint8_t> buffer_vector(sizes.total(), zone); |
| 494 byte* buffer = &buffer_vector[0]; | 496 byte* buffer = &buffer_vector[0]; |
| 495 byte* header = buffer; | 497 byte* header = buffer; |
| 496 byte* body = buffer + sizes.header_size; | 498 byte* body = buffer + sizes.header_size; |
| 497 | 499 |
| 500 // -- emit magic ------------------------------------------------------------- |
| 501 EmitUint32(&header, kWasmMagic); |
| 502 EmitUint32(&header, kWasmVersion); |
| 503 |
| 498 // -- emit memory declaration ------------------------------------------------ | 504 // -- emit memory declaration ------------------------------------------------ |
| 499 EmitUint8(&header, kDeclMemory); | 505 EmitUint8(&header, kDeclMemory); |
| 500 EmitUint8(&header, 16); // min memory size | 506 EmitUint8(&header, 16); // min memory size |
| 501 EmitUint8(&header, 16); // max memory size | 507 EmitUint8(&header, 16); // max memory size |
| 502 EmitUint8(&header, 0); // memory export | 508 EmitUint8(&header, 0); // memory export |
| 503 | 509 |
| 504 // -- emit globals ----------------------------------------------------------- | 510 // -- emit globals ----------------------------------------------------------- |
| 505 if (globals_.size() > 0) { | 511 if (globals_.size() > 0) { |
| 506 EmitUint8(&header, kDeclGlobals); | 512 EmitUint8(&header, kDeclGlobals); |
| 507 EmitVarInt(&header, globals_.size()); | 513 EmitVarInt(&header, globals_.size()); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 577 next = next | 0x80; | 583 next = next | 0x80; |
| 578 } | 584 } |
| 579 output.push_back(next); | 585 output.push_back(next); |
| 580 shift += 7; | 586 shift += 7; |
| 581 } while ((next & 0x80) != 0); | 587 } while ((next & 0x80) != 0); |
| 582 return output; | 588 return output; |
| 583 } | 589 } |
| 584 } // namespace wasm | 590 } // namespace wasm |
| 585 } // namespace internal | 591 } // namespace internal |
| 586 } // namespace v8 | 592 } // namespace v8 |
| OLD | NEW |