Home
last modified time | relevance | path

Searched +full:dynamically +full:- +full:typed (Results 1 – 8 of 8) sorted by relevance

/ark/runtime_core/docs/
Drationale-for-bytecode.md46 In a _stack-based_ approach, operands are implicitly encoded in the operation. The code is as follo…
52 add ; remove two top-most values from the stack, add them and put the result at the top
58 In a _register-based approach_, operands are explicitly encoded in the operation. The code is as fo…
68 This example demonstrates a fundamental difference between two approaches. Stack-based approach
70 can be represented with a single byte, while register-based `add reg_dst, reg_src1, reg_src2` may
73 In addition, a stack-based addition requires three instructions, while a register-based addition
76 more _dispatch overhead_. This means that the stack-based bytecode is slower by nature.
78 According to our experiment, uncompressed register-based Dalvik bytecode can be reduced by ~26%
79 if substituted by a stack-based analogue. At the same time, performance becomes 10%-40% worse
82 **Panda uses register-based instruction set architecture** because performance of the interpreter
[all …]
Ddesign-of-interpreter.md9 | ------------------------------- | ---------------------------------------------------------- |
22 1. The platform should scale from microcontrollers to high-end mobile phones:
29 1. JavaScript (and probably other dynamically typed languages) should run on the platform, but
43 1. Bytecode is register-based: all arguments and variables are mapped to virtual registers,
47 1. Bytecode's instruction set architecture is machine-readable with a dedicated API for
52 For the rationale on the bytecode type, please see [here](rationale-for-bytecode.md).
54 Rationale on the machine-readable instruction set architecture is following. Since bytecode
56 the platform outside the interpreter. Having this crucial information copy-pasted or delivered as
57 a bunch of C/C++ headers is very fragile and error-prone. At the same time,
58 with the machine-readable ISA we now already can re-use this information in many places, e.g.:
[all …]
/ark/runtime_core/tests/cts-coverage-tool/
Dnon_testable.yaml6 # http://www.apache.org/licenses/LICENSE-2.0
13 ---
16 - title: Conversions between integer and floating point types
17 description: Conversion from floating-point types to integer one obeys the following
20 - title: Create new object
24 - title: Load accumulator from string constant pool
25 description: In dynamically-typed language context load string as 'any' value.
28 - title: Type conversions
30 Conversion from floating-point types to integer one obeys the following rules.
33 - title: Object equality comparison
[all …]
/ark/js_runtime/ecmascript/
Dtagged_array-inl.h7 * http://www.apache.org/licenses/LICENSE-2.0
19 #include "ecmascript/js_tagged_value-inl.h"
28 // dynamically-typed languages like JavaScript. So we simply skip the read-barrier. in Get()
30 // NOLINTNEXTLINE(readability-braces-around-statements, bugprone-suspicious-semicolon) in Get()
57 // NOLINTNEXTLINE(readability-braces-around-statements, bugprone-suspicious-semicolon) in Set()
60 } else { // NOLINTNEXTLINE(readability-misleading-indentation) in Set()
70 // NOLINTNEXTLINE(readability-braces-around-statements, bugprone-suspicious-semicolon) in Set()
73 } else { // NOLINTNEXTLINE(readability-misleading-indentation) in Set()
81 uint32_t firstLength = first->GetLength(); in Append()
82 uint32_t secondLength = second->GetLength(); in Append()
[all …]
Decma_macros.h7 * http://www.apache.org/licenses/LICENSE-2.0
23 #include "ecmascript/mem/barriers-inl.h"
32 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
34 …e, ECMASCRIPT) << __func__ << " Line:" << __LINE__ << " " // NOLINT(bugprone-lambda-function-name)
39 LOG_IF(ecmaVM->IsOptionalLogEnabled(), level, component)
50 /* dynamically-typed languages like JavaScript. So we simply skip the read-barrier. …
51 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
54 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
62 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
66 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
[all …]
/ark/runtime_core/isa/
Disa.yaml6 # http://www.apache.org/licenses/LICENSE-2.0
14 ---
17 - name: General design
21 - name: Registers
31 - name: Accumulator
40 register-to-register moves.
42 - name: Calling sequence
48 …On return, callee frame is destroyed. If function return value is non-void, it is passed to caller…
52 - name: Supported primitive types
54 …VM support operations on registers with i32 and i64 integral values. However, 8-bit and 16-bit int…
[all …]
/ark/runtime_core/tests/cts-generator/cts-template/
Dcall.acc.short.yaml6 # http://www.apache.org/licenses/LICENSE-2.0
13 ---
15 - name: java
20 - file-name: call.acc.short
30 runtime constant-pool.
32 … Non-range instructions can be used to pass up to 4 arguments (unused register slot values will
34 In dynamically-typed language context accept 'any' values in source registers.
37 - x_none
39 - method_id_static
40 - compatible_arguments
[all …]
Dcall.acc.yaml6 # http://www.apache.org/licenses/LICENSE-2.0
13 ---
15 - name: java
20 - file-name: call.acc
30 runtime constant-pool.
32 … Non-range instructions can be used to pass up to 4 arguments (unused register slot values will
34 In dynamically-typed language context accept 'any' values in source registers.
37 - x_none
39 - method_id_static
40 - compatible_arguments
[all …]