Lines Matching refs:of
2 …ibes the Ark Bytecode file format in detail, aiming to introduce each part of the bytecode and gui…
6 …tecode in 11.0.2.0 version. (The version number is an internal reserved field of the Ark compiler.)
9 ## Data Types of Bytecode File
28 …e value is **`len << 1 \**| **is_ascii**, where **len** indicates the size of a string encoded by …
38 | `tag` | `uint8_t` | Indicates the tag of a data type. |
39 | `data` | `uint8_t[]` | According to different tags, **data** is of different types or …
43 …of the [Class](#class) name. Its name **L_ClassName;** is consisted by **'L'**, **'_'**, **ClassNa…
47 …of the structure in the bytecode file include offset and index. The offset calculated from 0 is a …
58 | `magic` | `uint8_t[8]` | Value of the magic number must be **'P' 'A' 'N' 'D' 'A' …
59 | `checksum` | `uint32_t` | **Adler32** checksum of the content in the bytecode file…
60 | `version` | `uint8_t[4]` | [Version](#version) number of the bytecode file.|
61 | `file_size` | `uint32_t` | Size of a bytecode file, in bytes. …
62 … that points to an external region. The external region contains two types of elements: [ForeignCl…
63 | `foreign_size` | `uint32_t` | Size of the external region, in bytes. …
64 …s` | `uint32_t` | Number of elements in the [ClassIndex](#classindex) structure, that …
66 …uint32_t` | Number of elements in the [LineNumberProgramIndex](#linenumberprogramindex) stru…
70 …gions` | `uint32_t` | Number of elements in the [IndexSection](#indexsection) structure, tha…
75 The bytecode version number consists of four parts in the format of **major version number.minor ve…
105 | `index_data` | `uleb128` | [MethodIndexData](#methodindexdata) data of the method.|
108 With the offset of **ForeignMethod**, an appropriate **IndexHeader** can be found to parse the **cl…
112 The **ClassIndex** structure is used to quickly locate the definition of the **Class** by name.
118 | `offsets` | `uint32_t[]` | An array. The value of each element in this array is an off…
122 …nt a source code file of Ark Bytecode or a built-in [Annotation](#annotation). When it indicates a…
131 | `access_flags` | `uleb128` | Accessing tag of **Class**, which is a combination of [Clas…
132 | `num_fields` | `uleb128` | Number of fields of **Class**. …
133 | `num_methods` | `uleb128` | Number of methods of **Class**. …
134 …iable length. Each element in the array is of the [TaggedValue](#taggedvalue) type, and the elemen…
135 | `fields` | `Field[]` | Array of **Class** fields. Each element in this array is of…
136 | `methods` | `Method[]` | Array of **Class** methods. Each element in this array is o…
153 …`none` | The [TaggedValue](#taggedvalue) with this tag is the final item of the **class_data**.|
154 | `SOURCE_LANG` | `0x02` | `0-1 ` | `uint8_t` | The **data** of [TaggedValue](#taggedvalue) wit…
155 …2_t`| The **data** of [TaggedValue](#taggedvalue) with this tag is an offset that points to [strin…
158 …of the element ([TaggedValue](#taggedvalue)) in the **class_data**. The number in the table header…
169 …to a position in [ClassRegionIndex](#classregionindex). The value of the position is of the [Type]…
170 …t points to the type of the field and points to a position in [ClassRegionIndex](#classregionindex…
171 …| `uint32_t` | An offset that points to [string](#string), indicating the name of the field.|
173 …iable length. Each element in the array is of the [TaggedValue](#taggedvalue) type, and the elemen…
176 Based on the offset of the **Field**, the appropriate **IndexHeader** can be found to parse the **c…
186 …none` | The [TaggedValue](#taggedvalue) with this tag is the final item of the **field_data**.|
187 …0x01` | `0-1` | `sleb128` | The **data** type of the [TaggedValue](#taggedvalue) with this tag …
188 …0x02` | `0-1` | `uint32_t` | The **data** type of the [TaggedValue](#taggedvalue) with this tag …
191 …of the element ([TaggedValue](#taggedvalue)) in the **field_data**. The number in the table header…
202 …to a position in [ClassRegionIndex](#classregionindex). The value of the position is of the [Type]…
205 | `index_data` | `uleb128` | [MethodIndexData](#methodindexdata) data of the method.|
206 …iable length. Each element in the array is of the [TaggedValue](#taggedvalue) type, and the elemen…
209 With the offset of **Method**, an appropriate **IndexHeader** can be found to parse the **class_idx…
217 …(#indexsection). The value of this position is [IndexHeader](#indexheader). You can use **IndexHea…
218 …nd` | `uint8_t` | Indicates the function type ([FunctionKind](#functionkind)) of a method |
239 … | The [TaggedValue](#taggedvalue) with this tag is the final item of the **method_data**.|
240 … | The **data** of [TaggedValue](#taggedvalue) with this tag is an offset pointing to [Code](#c…
241 | `SOURCE_LANG` | `0x02` | `0-1` | `uint8_t` | The **data** of [Tagged…
242 …**data** of [TaggedValue](#taggedvalue) with this tag is an offset pointing to [DebugInfo](#debugi…
243 … The **data** of [TaggedValue](#taggedvalue) with this tag is an offset pointing to [Annotation](#…
246 …of the element ([TaggedValue](#taggedvalue)) in the **method_data**. The number in the table heade…
256 | `num_vregs` | `uleb128` | Number of registers. Registers that store input and default…
257 | `num_args` | `uleb128` | Total number of input and default parameters. …
258 | `code_size` | `uleb128` | Total size of all instructions, in bytes. …
259 | `tries_size` | `uleb128` | Length of the **try_blocks** array, that is, the number of …
260 | `instructions` | `uint8_t[]` | Array of all instructions. …
261 | `try_blocks` | `TryBlock[]` | An array. Each element in the array is of the **TryBlock** …
271 …leb128` | Offset between the first instruction of the **TryBlock** and the start position o…
272 | `length` | `uleb128` | Size of the **TryBlock** object to create, in bytes. …
273 | `num_catches` | `uleb128` | Number of [CatchBlock](#catchblock) associated with **TryBl…
274 …lock[]` | Array of **CatchBlocks** associated with **TryBlock**. The array contains one **CatchB…
284 … | `uleb128` | If the value is **0**, the **CatchBlock** captures all types of exceptions.|
285 | `handler_pc` | `uleb128` | Program counter of the first instruction for handling the e…
286 | `code_size` | `uleb128` | Size of the **CatchBlock**, in bytes. |
297 …to a position in [ClassRegionIndex](#classregionindex). The value of the position is of the [Type]…
298 | `count` | `uint16_t` | Length of the **elements** array. …
299 | `elements` | AnnotationElement[] | An array. Each element of the array is of the [Annotatio…
300 …of the [AnnotationElementTag](#annotationelementtag) type and is used to describe an **AnnotationE…
303 With the offset of **Annotation**, an appropriate **IndexHeader** can be found to parse the **class…
335 …t` | An offset that points to [string](#string), indicating the name of the annotation eleme…
336 | `value` | `uint32_t` | Value of the annotation element. If the width of the value …
348 | `ID` | `uint32_t` | 4-byte mode, indicating the offset of a structure in a file…
352 The **LineNumberProgramIndex** structure is an array that facilitates the use of a more compact ind…
359 | `offsets` | `uint32_t[]` | An array in which the value of each element is an offset po…
363 …of the method and the line and column numbers in the source code, as well as information about loc…
370 | `line_start` | `uleb128` | Initial value of the line number register of the s…
371 | `num_parameters` | `uleb128` | Total number of input and default parameters. …
372 …ay that stores the names of input parameters. The array length is **num_parameters**. The value of…
373 | `constant_pool_size` | `uleb128` | Size of the constant pool, in bytes. …
375 …rprogramindex). The value of this position is an offset pointing to [Line number program](#line-nu…
388 | `line` | Value of the **line_start** attribute of [DebugInfo](#debuginfo)| Unsigned …
390 … | Value of **SOURCE_FILE** in **class_data** (see [Class](#class)), or 0.| An offset that points…
391 … | An offset that points to [string](#string), indicating the source code of the source file. If …
392 | `constant_pool_ptr` | Address of the first byte from the constant pool in [DebugInfo](#debuginfo)…
396 …umber program consists of instructions. Each instruction contains a single-byte operation code and…
400 | `END_SEQUENCE` | `0x00` | | | | Marks the end of the line number p…
403 …of the register that will contain this variable is encoded in the instruction. If the register num…
404 …of the register that will contain this variable is encoded in the instruction. If the register num…
405 …local variables. | Marks a local variable in the specified register as out of range at the current…
406 …tring](#string), indicating the file name.| Sets the value of the file register. The value of **na…
407 …](#string), indicating the source code of the file.| Sets the value of the **source_code** registe…
408 …column_num` | **column_num**: column number to be set. | Sets the value of the **column** regis…
416 …PCODE_BASE` | Calculates the adjusted operation code. The value of **OPCODE_BASE** is *…
417 … | Increases the value of the **address** register. The value of LINE_RANGE is 15, which is use…
418 …E + (adjusted_opcode % LINE_RANGE)` | Increase the value of the **line** register. The value of **…
426 …of a bytecode file is referenced by using a 32-bit offset. When a structure references another str…
433 … element in the array is of the [IndexHeader](#indexheader) type. Elements in the array are sorted…
437 Each **IndexHeader** structure describes an index region. Each index region has two types of indexe…
444 | `start_off` | `uint32_t` | Start offset of the region. …
445 | `end_off` | `uint32_t` | End offset of the region. …
446 …ize` | `uint32_t` | Number of elements in [ClassRegionIndex](#classregionind…
448 …ize` | `uint32_t` | Number of elements in the [MethodStringLiteralRegionIndex](#methodstring…
464 | `types` | `Type[]` | An array. Each element in the array is of the [Type](#type)…
496 | `offsets` | `uint32_t[]` | An array. The value of each element is an offset pointing to a …
507 | `num_literals` | `uint32_t` | Length of the **literals** array. …
508 | `literals` | `Literal[]` | An array. Each element of the array is of the [Literal](#li…
512 …s in a bytecode file. There are four encoding formats based on the number of bytes of the literals.