Home
last modified time | relevance | path

Searched full:bytecode (Results 1 – 25 of 369) sorted by relevance

12345678910>>...15

/arkcompiler/runtime_core/libpandafile/tests/
Dbytecode_instruction_tests.cpp31 const uint8_t bytecode[] = {0x00, 0xa1, 0xff}; in TEST() local
32 BytecodeInstruction inst(bytecode); in TEST()
39 const uint8_t bytecode[] = {0x00, 0x2f, 0xff}; in TEST() local
40 BytecodeInstruction inst(bytecode); in TEST()
51 const uint8_t bytecode[] = {0x00, 0xf2, 0xff}; in TEST() local
52 BytecodeInstruction inst(bytecode); in TEST()
58 const uint8_t bytecode[] = {0x00, 0x21, 0xff}; in TEST() local
59 BytecodeInstruction inst(bytecode); in TEST()
66 const uint8_t bytecode[] = {0x00, 0x12, 0xf2, 0xff}; in TEST() local
67 BytecodeInstruction inst(bytecode); in TEST()
[all …]
Dbytecode_imm_fetch_tests.cpp30 const uint8_t bytecode[] = {0x4f, 0x17}; in TEST() local
31 BytecodeInstruction inst(bytecode); in TEST()
40 const uint8_t bytecode[] = {0x4d, 0xea}; in TEST() local
41 BytecodeInstruction inst(bytecode); in TEST()
49 const uint8_t bytecode[] = {0x62, 0x1e, 0x00, 0x00, 0x00}; in TEST() local
50 BytecodeInstruction inst(bytecode); in TEST()
59 const uint8_t bytecode[] = {0x63, 0x1f, 0x85, 0xeb, 0x51, 0xb8, 0x1e, 0x09, 0x40}; in TEST() local
60 BytecodeInstruction inst(bytecode); in TEST()
70 const uint8_t bytecode[] = {0x2f, 0x8e, 0x00, 0x02, 0x03}; in TEST() local
71 BytecodeInstruction inst(bytecode); in TEST()
[all …]
/arkcompiler/runtime_core/static_core/libpandafile/tests/
Dbytecode_instruction_tests.cpp33 const uint8_t bytecode[] = {0x00, 0xa1, 0xff}; in TEST() local
34 BytecodeInstruction inst(bytecode); in TEST()
41 const uint8_t bytecode[] = {0x00, 0x2f, 0xff}; in TEST() local
42 BytecodeInstruction inst(bytecode); in TEST()
50 const uint8_t bytecode[] = {0x00, 0xf2, 0xff}; in TEST() local
51 BytecodeInstruction inst(bytecode); in TEST()
57 const uint8_t bytecode[] = {0x00, 0x21, 0xff}; in TEST() local
58 BytecodeInstruction inst(bytecode); in TEST()
65 const uint8_t bytecode[] = {0x00, 0x12, 0xf2, 0xff}; in TEST() local
66 BytecodeInstruction inst(bytecode); in TEST()
[all …]
/arkcompiler/runtime_core/docs/changelogs/
D2023-12-31-isa-changelog.md6 * Bytecode instructions
11 ## Bytecode instructions
12 …97c205593c94d5/zh-cn/application-dev/arkts-utils/arkts-sendable.md), 12 bytecode instructions are …
14 …s which will use define semantic instead of set semantic, the following bytecode instructions are …
19 2. To support private properties in class and access to them, the following bytecode instructions a…
25 3. To support `#x in obj` syntax, the following bytecode instruction is added:
28 … and get a value which can be used as class property key, the following bytecode instruction is ad…
31 5. To improve the performance of class field initialization, the following bytecode instruction is …
34 6. To support sendable class, the following bytecode instructions are added:
D2024-05-24-isa-changelog.md6 * Bytecode instructions
11 ## Bytecode instructions
12 …o improve the performance of "istrue" and "isfalse" bytecode instructions, the following two bytec…
16 …fieldbyname" bytecode's ic slot number when ic slot number overflows, which leads to a runtime err…
D2024-03-20-isa-changelog.md6 * Bytecode instructions
11 ## Bytecode instructions
12 To support lazy loading of module variables in sendable class, the following bytecode instructions …
D2024-05-12-isa.changelog.md6 * Bytecode instructions
11 ## Bytecode instructions
12 …able, the sendable lexical environment is implemented and the following bytecode instructions are …
D2024-07-10-isa-changelog.md6 * Bytecode instructions
11 ## Bytecode instructions
12 …/zh-cn/application-dev/quick-start/arkts-lazy-import.md), the following bytecode instructions are …
/arkcompiler/runtime_core/disassembler/tests/
Ddisassembler_imm_tests.cpp31 const uint8_t bytecode[] = {0x4f, 0x17}; in TEST() local
32 BytecodeInstruction inst(bytecode); in TEST()
40 const uint8_t bytecode[] = {0x4d, 0xea}; in TEST() local
41 BytecodeInstruction inst(bytecode); in TEST()
49 const uint8_t bytecode[] = {0x62, 0x1e, 0x00, 0x00, 0x00}; in TEST() local
50 BytecodeInstruction inst(bytecode); in TEST()
58 const uint8_t bytecode[] = {0x63, 0x1f, 0x85, 0xeb, 0x51, 0xb8, 0x1e, 0x09, 0x40}; in TEST() local
59 BytecodeInstruction inst(bytecode); in TEST()
70 const uint8_t bytecode[] = {0x2f, 0x8e, 0x00, 0x02, 0x03}; in TEST() local
71 BytecodeInstruction inst(bytecode); in TEST()
[all …]
/arkcompiler/runtime_core/static_core/docs/
Drationale-for-bytecode.md1 # Rationale for Bytecode
5 This document sets up some context about bytecode design principles and provides rationales for
6 bytecode design in Panda Runtime.
8 ## Bytecode basics
10 Before discussing bytecode per se, let's take a look at an over-simplified picture of a real
26 Here comes the bytecode. Simply said, it is an attempt to build an abstract CPU on top of real
29 commands (or bytecode) and execute them. Of course, this implies additional performance overhead
35 Although bytecode represents some abstraction, it mirrors all the mentioned concepts from the
41 building bytecode. Following sections explain advantages and disadvantages of various approaches.
78 each bytecode instruction, execute it and move to the next one, running more instruction results in
[all …]
Dglossary.md12 compilation" are used to indicate that the source code or bytecode is compiled before actual
13 execution. In case of Panda Runtime, AOT compilation is used to compile Panda Bytecode into
14 native machine code to reduce runtime overhead from reading and compiling bytecode.
16 * **Bytecode**. See **Panda Bytecode**.
17 * **Compiler** is a tool that performs source code or bytecode translation, optimization and
22 * **ISA** stands for **Instruction Set Architecture**. See **Panda Bytecode** and
25 compilation" are used to indicate that the source code or bytecode is compiled during program
26 execution. In case of Panda Runtime, JIT compilation is used to compile Panda Bytecode into
27 native machine code to reduce overhead from interpreting bytecode.
32 correspondence between the instructions in the language and **Panda Bytecode** instructions.
[all …]
Ddesign-of-interpreter.md6 bytecode instruction set, executable file format, etc. Each subsection below consists of following
26 1. Program execution via bytecode interpretation should be enabled on all targets.
29 ## Bytecode section in Interpreter Design
33 1. Bytecode should allow the interpreter to run no slower than state of the art interpreters.
34 1. Bytecode should be compact in size to avoid bloating application code.
35 1. Bytecode description should have a single entry point to simplify maintenance
40 1. Bytecode is register-based: all arguments and variables are mapped to virtual registers,
44 1. Bytecode's instruction set architecture is machine-readable with a dedicated API for
49 For the rationale on the bytecode type, please see [here](rationale-for-bytecode.md).
51 Rationale on the machine-readable instruction set architecture is following. Since bytecode
[all …]
Druntime-debug-api.md9 1. Runtime doesn't patch apps' bytecode on the fly. Instead of it notification about changing bytec…
15 1. As some low-end targets can store bytecode in ROM, runtime cannot patch app's bytecode on the fl…
27 * `BytecodePcChanged` - occurs when bytecode pc is changed during interpretation (only if runtime w…
Dbytecode_profiling.md1 # Bytecode profiling in Dynamic languages
5 Each bytecode instruction, that supports profiling, contains additional field - profile index. It d…
15 …s a plain data of bytes, which content is determined by the language of a given bytecode. Core part
20 Each interpreter handler reads profiling field from bytecode instruction and update corresponding s…
/arkcompiler/runtime_core/docs/
Drationale-for-bytecode.md1 # Rationale for Bytecode
5 This document sets up some context about bytecode design principles and provides rationales for
6 bytecode design in Panda Runtime.
8 ## Bytecode basics
10 Before discussing bytecode per se, let's take a look at an over-simplified picture of a real
26 Here comes the bytecode. Simply said, it is an attempt to build an abstract CPU on top of real
29 commands (or bytecode) and execute them. Of course, this implies additional performance overhead
35 Although bytecode represents some abstraction, it mirrors all the mentioned concepts from the
41 building bytecode. Following sections explain advantages and disadvantages of various approaches.
78 each bytecode instruction, execute it and move to the next one, running more instruction results in
[all …]
Dglossary.md12 compilation" are used to indicate that the source code or bytecode is compiled before actual
13 execution. In case of Panda Runtime, AOT compilation is used to compile Panda Bytecode into
14 native machine code to reduce runtime overhead from reading and compiling bytecode.
16 * **Bytecode**. See **Panda Bytecode**.
17 * **Compiler** is a tool that performs source code or bytecode translation, optimization and
22 * **ISA** stands for **Instruction Set Architecture**. See **Panda Bytecode** and
25 compilation" are used to indicate that the source code or bytecode is compiled during program
26 execution. In case of Panda Runtime, JIT compilation is used to compile Panda Bytecode into
27 native machine code to reduce overhead from interpreting bytecode.
32 correspondence between the instructions in the language and **Panda Bytecode** instructions.
[all …]
Ddesign-of-interpreter.md6 bytecode instruction set, executable file format, etc. Each subsection below consists of following
26 1. Program execution via bytecode interpretation should be enabled on all targets.
29 ## Bytecode section in Interpreter Design
33 1. Bytecode should allow the interpreter to run no slower than state of the art interpreters.
34 1. Bytecode should be compact in size to avoid bloating application code.
35 1. Bytecode description should have a single entry point to simplify maintenance
40 1. Bytecode is register-based: all arguments and variables are mapped to virtual registers,
44 1. Bytecode's instruction set architecture is machine-readable with a dedicated API for
49 For the rationale on the bytecode type, please see [here](rationale-for-bytecode.md).
51 Rationale on the machine-readable instruction set architecture is following. Since bytecode
[all …]
Druntime-debug-api.md9 1. Runtime doesn't patch apps' bytecode on the fly. Instead of it notification about changing bytec…
15 1. As some low-end targets can store bytecode in ROM, runtime cannot patch app's bytecode on the fl…
27 * `BytecodePcChanged` - occurs when bytecode pc is changed during interpretation (only if runtime w…
/arkcompiler/runtime_core/compiler/docs/
Dir_builder.md5 The IR builder pass constructs the Intermediate Representation (IR) from the Panda bytecode.
16 Due to specifics of the Panda bytecode, IR builder has responsibility to handle various situation t…
43 1. Iterate over all bytecode instructions and make basic block for all target instructions, i.e. in…
53 4. Get next bytecode instruction from the current basic block.
54 5. Build the Panda IR instruction from the bytecode instruction:
78 def Run(graph, bytecode):
79 BuildBasicBlocks(graph, bytecode)
83 for bc_inst in bytecode.instructions[bb.first_pc..bb.last_pc]:
90 def BuildBasicBlocks(graph, bytecode):
93 blocks.resize(bytecode.instructions.size())
[all …]
/arkcompiler/runtime_core/static_core/compiler/docs/
Dir_builder.md5 The IR builder pass constructs the Intermediate Representation (IR) from the Panda bytecode.
16 Due to specifics of the Panda bytecode, IR builder has responsibility to handle various situation t…
43 1. Iterate over all bytecode instructions and make basic block for all target instructions, i.e. in…
53 4. Get next bytecode instruction from the current basic block.
54 5. Build the Panda IR instruction from the bytecode instruction:
78 def Run(graph, bytecode):
79 BuildBasicBlocks(graph, bytecode)
83 for bc_inst in bytecode.instructions[bb.first_pc..bb.last_pc]:
90 def BuildBasicBlocks(graph, bytecode):
93 blocks.resize(bytecode.instructions.size())
[all …]
/arkcompiler/runtime_core/static_core/runtime/regexp/ecmascript/
Dregexp_executor.h72 bool ExecuteInternal(const DynChunk &byteCode, uint32_t pcEnd);
102 inline bool HandleOpChar(const DynChunk &byteCode, uint8_t opCode) in HandleOpChar() argument
106 expectedChar = byteCode.GetU32(GetCurrentPC() + 1); in HandleOpChar()
108 expectedChar = byteCode.GetU16(GetCurrentPC() + 1); in HandleOpChar()
187 inline void HandleOpSaveStart(const DynChunk &byteCode, uint8_t opCode) in HandleOpSaveStart() argument
189 uint32_t captureIndex = byteCode.GetU8(GetCurrentPC() + 1); in HandleOpSaveStart()
197 inline void HandleOpSaveEnd(const DynChunk &byteCode, uint8_t opCode) in HandleOpSaveEnd() argument
199 uint32_t captureIndex = byteCode.GetU8(GetCurrentPC() + 1); in HandleOpSaveEnd()
207 inline void HandleOpSaveReset(const DynChunk &byteCode, uint8_t opCode) in HandleOpSaveReset() argument
209 uint32_t catpureStartIndex = byteCode.GetU8(GetCurrentPC() + SAVE_RESET_START); in HandleOpSaveReset()
[all …]
/arkcompiler/runtime_core/
DREADME.md25 …ler # Assembler that converts an ARK bytecode file in text format (*.pa) into a byte…
26 ├── bytecode_optimizer # Bytecode optimizer, further optimize the ARK bytecode to generate opt…
28 … # Compiler including IR(intermediate representation) and passes for bytecode optimization. See…
30 … # Disassembler that converts an ARK bytecode file in binary format (*.abc) into an ARK
35 ├── isa # Bytecode ISA description file YAML, Ruby scripts and templates.
37 ├── libark_defect_scan_aux # Vulnerability defect scanning tool for ARK bytecode file in binary fo…
39 ├── libpandafile # Source code repository of ARK bytecode files (*.abc) in binary format.
41 ├── panda # CLI tool used to execute ARK bytecode files in binary format(*.abc).
50 └── verification # Bytecode verifier. See docs/bc_verification.
/arkcompiler/ets_runtime/ecmascript/regexp/
Dregexp_executor.h61 bool ExecuteInternal(const DynChunk &byteCode, uint32_t pcEnd);
98 inline bool HandleOpChar(const DynChunk &byteCode, uint8_t opCode) in HandleOpChar() argument
102 expectedChar = byteCode.GetU32(GetCurrentPC() + 1); in HandleOpChar()
104 expectedChar = byteCode.GetU16(GetCurrentPC() + 1); in HandleOpChar()
173 inline void HandleOpSaveStart(const DynChunk &byteCode, uint8_t opCode) in HandleOpSaveStart() argument
175 uint32_t captureIndex = byteCode.GetU8(GetCurrentPC() + 1); in HandleOpSaveStart()
185 inline void HandleOpSaveEnd(const DynChunk &byteCode, uint8_t opCode) in HandleOpSaveEnd() argument
187 uint32_t captureIndex = byteCode.GetU8(GetCurrentPC() + 1); in HandleOpSaveEnd()
197 inline void HandleOpSaveReset(const DynChunk &byteCode, uint8_t opCode) in HandleOpSaveReset() argument
199 uint32_t catpureStartIndex = byteCode.GetU8(GetCurrentPC() + SAVE_RESET_START); in HandleOpSaveReset()
[all …]
Dregexp_executor.cpp81 bool RegExpExecutor::ExecuteInternal(const DynChunk &byteCode, uint32_t pcEnd) in ExecuteInternal() argument
88 uint8_t opCode = byteCode.GetU8(GetCurrentPC()); in ExecuteInternal()
99 if (!HandleOpChar(byteCode, opCode)) { in ExecuteInternal()
124 HandleOpSaveStart(byteCode, opCode); in ExecuteInternal()
127 HandleOpSaveEnd(byteCode, opCode); in ExecuteInternal()
130 uint32_t offset = byteCode.GetU32(GetCurrentPC() + 1); in ExecuteInternal()
155 HandleOpSaveReset(byteCode, opCode); in ExecuteInternal()
160 HandleOpMatch(byteCode, opCode); in ExecuteInternal()
163 HandleOpSplitFirst(byteCode, opCode); in ExecuteInternal()
173 HandleOpLoop(byteCode, opCode); in ExecuteInternal()
[all …]
/arkcompiler/runtime_core/static_core/runtime/tests/
Dinterpreter_test.cpp115 const std::vector<uint8_t> &bytecode) in CreateMethod() argument
129 auto *codeItem = container.CreateItem<panda_file::CodeItem>(nregs, nargs, bytecode); in CreateMethod()
156 Class *klass, Frame *f, const std::vector<uint8_t> &bytecode) in CreateMethod() argument
158 return CreateMethod(klass, 0, 0, f->GetSize(), nullptr, bytecode); in CreateMethod()
212 std::vector<uint8_t> bytecode; in TEST_F() local
213 ASSERT_EQ(emitter.Build(&bytecode), BytecodeEmitter::ErrorCode::SUCCESS); in TEST_F()
220 auto methodData = CreateMethod(cls, f.get(), bytecode); in TEST_F()
235 Execute(ManagedThread::GetCurrent(), bytecode.data(), f.get()); in TEST_F()
319 std::vector<uint8_t> bytecode; in TEST_F() local
320 ASSERT_EQ(emitter.Build(&bytecode), BytecodeEmitter::ErrorCode::SUCCESS); in TEST_F()
[all …]

12345678910>>...15