| /arkcompiler/runtime_core/docs/ |
| D | 2022-08-18-isa-changelog.md | 1 # 2022-08-18-isa-changelog 15 3. We add prefix "deprecated" and keep the many old isa as "deprecated"-prefixed opcodes (for compa… 20 8. We add 8-bit or 16-bit imm as inline cache slot for some specific opcodes. 23 As we merge some "define-function" opcodes as one opcode, in function we add one field which record… 24 such that runtime can distinguish the "define-function" operations of different kinds. 26 We reuse the field 32-bit field `access_flags_` to encode Function Kind and Header index. 27 This will not introduce compatibility issue because the later 24-bit of `access_flags_` is unused i… 30 |<- 16-bit header index ->|<- 8-bit function kind ->|<- 8-bit original access flag ->| 39 As we use 16-bit to encode methodId, stringId and literalarrayId, the number of these Ids in one me… 45 3. In bytecode, we still use 16-bit literalarrayId rather than offset. [all …]
|
| D | code_metainfo.md | 5 Metainfo is an information that aims to provide reg-to-stack mapping for virtual registers. It is n… 14 +-------------+ 16 | +-------------------+ 20 +-------------+-------------------+ 21 | | <-- Method::CompiledCodeEntrypoint 24 +-------------+-----------------+ 26 | |-----------------+----------------------+ 31 | | Bit Tables | Method indexes | 37 |-------------+-----------------+----------------------+ 40 ## Bit table [all …]
|
| D | aot.md | 15 |---------|-------|----------| 17 | LAOD | R-W | .aot_got | 18 | LAOD | R-E | .text | 19 | DYNAMIC | R-W | .dynamic | 20 | LAOD | R-W | .dynamic | 22 - `.hash`, `.dynstr`, `.dynsym`, `.dynamic` - Standard ELF sections. 23 - `.text` - Contains compiled native code. Code of each compiled method is placed sequentially into… 24 special alignment, mostly it is 16 bytes (see `CODE_ALIGNMENT` in `libpandabase/utils/arch.h` file). 25 - `.aot_got` - Contains table of the runtime's entrypoint handlers. Must be placed right before `.t… 26 - `.aot` - Contains all information that describes AOT structure. All used structures can be found … [all …]
|
| D | assembly_format.md | 5 … assembly file format for Panda platform. Assembly files are human-readable and human-writeable pl… 11 …-to-byte-code language with a minimal feature set. All language-specific "traits" that should be s… 28 …-point decimal/hexadecimal literals that can be represented with IEEE 754. Hexadecimal floating-po… 32 …e of any characters enclosed in `"` characters. Non-printable characters and characters out of Lat… 36 - `\"` double quote, `\x22` 37 - `\a` alert, `\x07` 38 - `\b` backspace, `\x08` 39 - `\f` form feed, `\x0c` 40 - `\n` newline, `\x0a` 41 - `\r` carriage return, `\x0d` [all …]
|
| D | file_format.md | 13 doesn't fit in 16-bit unsigned integer. It leads to application developer have to create several 24 But to achieve more compactness 16-bit indexes are used to refer classes, methods and fields in 68 Any tool which supports format version `N` must support format version `N - 1` too. 73 | ---- | ----------- | 74 | `uint8_t` | 8-bit unsigned integer value | 75 | `uint16_t` | 16-bit unsigned integer value | 76 | `uint32_t` | 32-bit little endian unsigned integer value. | 80 ### MUTF-8 Encoding 82 Binary file format uses MUTF-8 (Modified UTF-8) encoding for strings. 91 | ---- | ------ | ----------- | [all …]
|
| /arkcompiler/runtime_core/runtime/bridge/arch/x86/ |
| D | interpreter_to_compiled_code_bridge_x86.S | 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 27 cmpl $(SHORTY_NUM_64BIT_TYPES - 1), %ecx 30 // it is a 32bit value 36 // it is a 64bit value 55 addl $16, \stack_ptr 62 // %eax - SHORTY_PTR_REG 63 // %edx - SHORTY_REG 64 // %ecx - shorty value (no initialization needed) 65 // %ebx - method [all …]
|
| D | compiled_code_to_interpreter_bridge_x86.S | 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 32 // %esp % 16 == 12 here (-4 == 12 (mod 16)) 62 // %esp % 16 == 8 here 65 leal -8(%ebp), %ecx // prev* 69 // %esp should be 16-byte aligned here 76 …// %eax - SHORTY_PTR_REG, %edx - SHORTY_REG, %ecx - shorty value, %edi - iframe.vregs_ + num_vregs… 77 // %esi - args, (%esp) - iframe* 116 cmpl $(SHORTY_NUM_64BIT_TYPES - 1), %ecx 119 // it is a 32bit value or reference [all …]
|
| /arkcompiler/ets_runtime/ecmascript/snapshot/mem/ |
| D | encode_bit.h | 7 * http://www.apache.org/licenses/LICENSE-2.0 29 * 16bit 8bit 1bit 1bit 1bit 8bit 1bit 18bit 10bit 44 // encode bit 51 static constexpr int UNUSED_BIT_NUMBER = 9; // unused bit number 52 static constexpr int IS_REFERENCE_BIT_NUMBER = 16; // [0x0000] is reference
|
| /arkcompiler/runtime_core/runtime/bridge/arch/arm/ |
| D | compiled_code_to_interpreter_bridge_armhf.S | 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 37 sub sp, sp, #16 38 CFI_ADJUST_CFA_OFFSET(16) 53 push {r4 - r10} 54 CFI_REL_OFFSET(r10, -(2 * 4)) 55 CFI_REL_OFFSET(r9, -(3 * 4)) 56 CFI_REL_OFFSET(r8, -(4 * 4)) 57 CFI_REL_OFFSET(r7, -(5 * 4)) 58 CFI_REL_OFFSET(r6, -(6 * 4)) [all …]
|
| D | compiled_code_to_interpreter_bridge_arm.S | 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 36 // store r0-r3 before the frame to make arg array continuos with stack args 37 push {r0-r3} 38 CFI_ADJUST_CFA_OFFSET(16) 49 CFI_ADJUST_CFA_OFFSET(-4) 57 push {r4 - r10} 58 CFI_REL_OFFSET(r10, -(2 * 4)) 59 CFI_REL_OFFSET(r9, -(3 * 4)) 60 CFI_REL_OFFSET(r8, -(4 * 4)) [all …]
|
| D | interpreter_to_compiled_code_bridge_armhf.S | 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 24 // load arguments into r0-r4 while begin_ptr != end_ptr 25 ldr r0, [\begin_ptr, #-4]! 28 ldr r1, [\begin_ptr, #-4]! 31 ldr r2, [\begin_ptr, #-4]! 34 ldr r3, [\begin_ptr, #-4]! 39 // load arguments into d0-d7 while \begin_ptr != \end_ptr 80 // it is a 32bit int or reference 84 cmp \tmp2, #16 [all …]
|
| D | interpreter_to_compiled_code_bridge_arm.S | 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 28 cmp r2, #(SHORTY_NUM_64BIT_TYPES - 1) 30 // it is a 32bit value 34 1: // it is a 64bit value 72 // r0 - SHORTY_PTR_REG 73 // r1 - SHORTY_REG 74 // r2 - shorty value (no initialization needed) 75 // r7 - method 99 cmp r2, #(SHORTY_NUM_64BIT_TYPES - 1) [all …]
|
| /arkcompiler/runtime_core/runtime/include/coretypes/ |
| D | tagged_value.h | 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 31 // Every double with all of its exponent bits set and its highest mantissa bit set is a quiet NaN. 33 // “QNaN Floating-Point Indefinite” value, leaving us 50 bits. Those remaining bits can be anythin… 34 // so we use a special quietNaN as TaggedInt tag(highest 16bits as 0xFFFF), and need to encode dou… 35 // to the value will begin with a 16-bit pattern within the range 0x0001..0xFFFE. 37 // Nan-boxing pointer is used and the first four bytes are used as tag: 38 // Object: [0x0000] [48 bit direct pointer] 39 // WeakRef: [0x0000] [47 bits direct pointer] | 1 bit 1 40 // / [0x0001] [48 bit any value] [all …]
|
| /arkcompiler/ets_runtime/ecmascript/compiler/assembler/aarch64/ |
| D | assembler_aarch64.cpp | 7 * http://www.apache.org/licenses/LICENSE-2.0 31 … ((width != RegXSize) && (((imm >> width) != 0) || (imm == (~0ULL >> (RegXSize - width)))))) { in Create() 39 uint64_t mask = (1ULL << size) - 1; in Create() 50 uint64_t mask = ((uint64_t)-1LL) >> (RegXSize - size); in Create() 64 i = static_cast<uint32_t>(RegXSize) - clo; in Create() 65 cto = clo + CountTrailingOnes64(imm) - (static_cast<uint32_t>(RegXSize) - size); in Create() 72 unsigned immr = (size - i) & (size - 1); in Create() 74 // If size has a 1 in the n'th bit, create a value that has zeroes in in Create() 76 uint64_t nImms = ~(size - 1) << 1; in Create() 78 // Or the CTO value into the low bits, which must be below the Nth bit in Create() [all …]
|
| D | assembler_aarch64_constants.h | 7 * http://www.apache.org/licenses/LICENSE-2.0 50 UXTX = 3, /* zero extend to 64bit */ 54 SXTX = 7, /* sign extend to 64bit */ 214 V(COMMON_REG, Rm, 20, 16) \ 237 |31 30 29 28|27 26 25 24|23 22 21 20 | 16|15 14 |11 10 9 | 5 4| 0| 240 |31 30 29 28|27 26 25 24|23 22 21 20 | 16|15 13 12 |11 10 9 | 5 4| 0| 254 |31 30 29 28|27 26 25 24|23 22 21 20 | 16|15 14 |11 10 9 | 5 4| 0| 257 |31 30 29 28|27 26 25 24|23 22 21 20 | 16|15 14 |11 10 9 | 5 4| 0| 262 V(BITWISE_OP, Immr, 21, 16) \ 270 |31 30 29 28|27 26 25 24|23 22 21 20 | 16|15 14 12 |11 10 9 | 5 4| 0| [all …]
|
| /arkcompiler/ets_frontend/es2panda/util/ |
| D | base64.cpp | 7 * http://www.apache.org/licenses/LICENSE-2.0 28 …for (size_t i = 0, j = 0; i < encodedRes.length() - 2; i += TRANSFORMED_CHAR_NUM, j += TO_TRANSFOR… in Base64Encode() 29 // convert three 8bit into four 6bit; then add two 0 bit in each 6 bit in Base64Encode() 41 encodedRes[encodedRes.length() - 2] = '='; in Base64Encode() 42 encodedRes[encodedRes.length() - 1] = '='; in Base64Encode() 45 encodedRes[encodedRes.length() - 1] = '='; in Base64Encode() 56 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, in Base64Decode() 57 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, in Base64Decode() 58 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, in Base64Decode() 59 -1, -1, -1, -1, -1, -1, -1, in Base64Decode() [all …]
|
| /arkcompiler/runtime_core/runtime/bridge/arch/amd64/ |
| D | interpreter_to_compiled_code_bridge_amd64.S | 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 56 // load arguments into xmm0-xmm7 while \begin_ptr != \end_ptr 106 cmpl $(SHORTY_NUM_FLOAT_TYPES - 1), %r11d 120 cmpl $(SHORTY_TAGGED - SHORTY_FIRST_FLOAT), %r11d 151 cmpl $(SHORTY_TAGGED - SHORTY_FIRST_FLOAT), %r11d 163 // +--------------+ 165 // +--------------+ 167 // +--------------+ 169 // +--------------+ <- %r8 (base) [all …]
|
| /arkcompiler/runtime_core/libpandabase/utils/ |
| D | math_helpers.h | 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 30 * @param X - should be power of 2 35 ASSERT((X > 0) && !(X & (X - 1U))); in GetIntLog2() 41 * @param X - of type uint64_t, should be power of 2 46 ASSERT((X > 0) && !(X & (X - 1U))); in GetIntLog2() 57 return (value & (value - 1)) == 0; in IsPowerOfTwo() 67 --value; in GetPowerOfTwoValue32() 72 constexpr uint32_t BIT = 32UL; in GetPowerOfTwoValue32() local 73 return 1UL << (BIT - Clz(static_cast<uint32_t>(value))); in GetPowerOfTwoValue32() [all …]
|
| /arkcompiler/runtime_core/runtime/bridge/arch/aarch64/ |
| D | interpreter_to_compiled_code_bridge_aarch64.S | 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 24 ldp x0, x1, [\begin_ptr], #16 25 ldp x2, x3, [\begin_ptr], #16 26 ldp x4, x5, [\begin_ptr], #16 27 ldp x6, x7, [\begin_ptr], #16 31 ldp d1, d0, [\begin_ptr, #-16]! 32 ldp d3, d2, [\begin_ptr, #-16]! 33 ldp d5, d4, [\begin_ptr, #-16]! 34 ldp d7, d6, [\begin_ptr, #-16]! [all …]
|
| /arkcompiler/runtime_core/libpandafile/ |
| D | index_accessor.h | 7 * http://www.apache.org/licenses/LICENSE-2.0 24 // NOLINTNEXTLINE(cppcoreguidelines-special-member-functions, hicpp-special-member-functions) 30 auto sp = pf.GetSpanFromId(method_id).SubSpan(IDX_SIZE * (SKIP_NUM - 1) + ID_SIZE); in IndexAccessor() 33 num_headers_ = pf.GetHeader()->num_indexes; in IndexAccessor() 40 // quick way to resolve offset by 16-bit id in method's instructions
|
| /arkcompiler/ets_runtime/ecmascript/ |
| D | js_tagged_value.h | 7 * http://www.apache.org/licenses/LICENSE-2.0 52 // Every double with all of its exponent bits set and its highest mantissa bit set is a quiet NaN. 54 // “QNaN Floating-Point Indefinite” value, leaving us 50 bits. Those remaining bits can be anythin… 55 // so we use a special quietNaN as TaggedInt tag(highest 16bits as 0xFFFF), and need to encode dou… 56 // to the value will begin with a 16-bit pattern within the range 0x0001..0xFFFE. 58 // Nan-boxing pointer is used and the first four bytes are used as tag: 59 // Object: [0x0000] [48 bit direct pointer] 61 // / [0x0001] [48 bit any value] 63 // \ [0xFFFE] [48 bit any value] 64 // TaggedInt: [0xFFFF] [0x0000] [32 bit signed integer] [all …]
|
| /arkcompiler/ets_runtime/ecmascript/jspandafile/ |
| D | method_literal.h | 7 * http://www.apache.org/licenses/LICENSE-2.0 53 using NumVregsBits = HaveFuncBit::NextField<uint32_t, VREGS_ARGS_NUM_BITS>; // offset 4-31 54 using NumArgsBits = NumVregsBits::NextField<uint32_t, VREGS_ARGS_NUM_BITS>; // offset 32-59 165 return (callField & CALL_TYPE_MASK) == 1; // 1: the first bit of callFiled is HaveThisBit in OnlyHaveThisWithCallField() 170 …return (callField & CALL_TYPE_MASK) == 0b11; // the first two bit of callFiled is `This` and `New… in OnlyHaveNewTagetAndThisWithCallField() 198 static constexpr size_t METHOD_ARGS_NUM_BITS = 16; 200 static constexpr size_t METHOD_SLOT_SIZE_BITS = 16; 201 using HotnessCounterBits = BitField<int16_t, 0, METHOD_ARGS_NUM_BITS>; // offset 0-15 202 … MethodIdBits = HotnessCounterBits::NextField<uint32_t, METHOD_ARGS_METHODID_BITS>; // offset 16-47 203 using SlotSizeBits = MethodIdBits::NextField<uint16_t, METHOD_SLOT_SIZE_BITS>; // offset 48-63 [all …]
|
| /arkcompiler/runtime_core/runtime/tests/ |
| D | bitmap_test_base.h | 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 43 … EXPECT_EQ(bitmap_->Test(obj), ((BitmapType::ToPointerType(obj) & ADDRESS_MASK_TO_SET) != 0)); in operator() 54 size_t mask = ~((static_cast<size_t>(1) * alignment) - 1); in fn_rounddown() 62 const size_t heap_capacity = 16_MB; in RunTest() 90 const size_t remain = heap_capacity - offset; in RunTest() 112 bitmap->IterateOverMarkedChunkInRange(ToVoidPtr(begin), ToVoidPtr(end), count_fn); in RunTestCount() 130 bitmap->IterateOverChunks(order_check); in RunTestOrder() 137 bitmap->IterateOverMarkedChunkInRange(ToVoidPtr(begin), ToVoidPtr(end), order_check); in RunTestOrder() 152 // Set bit in TEST_F() [all …]
|
| /arkcompiler/runtime_core/compiler/optimizer/ir/ |
| D | instructions.yaml | 1 # Copyright (c) 2021-2022 Huawei Device Co., Ltd. 6 # http://www.apache.org/licenses/LICENSE-2.0 19 Describes signature of the instruction. Properties of the operands are separated by '-' symbol. 39 - equal_common_types 40 - float_src_eq_dst_size 41 - integer_src_ge_dst_size 43 - equal_common_types 44 - integer_src_ge_dst_size 46 - equal_common_types 47 - integer_src_ge_dst_size [all …]
|
| /arkcompiler/ets_runtime/ecmascript/builtins/tests/ |
| D | builtins_bigint_test.cpp | 7 * http://www.apache.org/licenses/LICENSE-2.0 44 // for consistency requirement, use ohos_icu4j/data as icu-data-path in SetUp() 49 instance->SetEnableForceGC(true); in SetUp() 51 thread = instance->GetJSThread(); in SetUp() 70 ecmaRuntimeCallInfo->SetFunction(JSTaggedValue::Undefined()); in HWTEST_F_L0() 71 ecmaRuntimeCallInfo->SetThis(JSTaggedValue::Undefined()); in HWTEST_F_L0() 72 ecmaRuntimeCallInfo->SetCallArg(0, numericValue.GetTaggedValue()); in HWTEST_F_L0() 84 ObjectFactory *factory = thread->GetEcmaVM()->GetFactory(); in HWTEST_F_L0() 85 JSHandle<JSTaggedValue> numericValue(factory->NewFromASCII("456")); in HWTEST_F_L0() 88 ecmaRuntimeCallInfo->SetFunction(JSTaggedValue::Undefined()); in HWTEST_F_L0() [all …]
|