| /arkcompiler/runtime_core/compiler/docs/ |
| D | interface_inline_cache.md | 11 * There is a 90% - 95% chance that the same method will be used in real-world application test. 20 * must be 64bit system 27 Cache structure:(offset addr)/(class addr) 32bit/32bit 28 ----------------------------------------------- 31 cache:offset/class ---------->| <-| 35 --> call runtime irtoc function | | 36 read cache <-----------------------| | 41 save method‘s offset to cache >------| 42 <-- return to (.text) 44 ----------------------------------------------- [all …]
|
| /arkcompiler/runtime_core/libpandabase/utils/ |
| D | regmask.h | 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 44 size_t res = (1ULL << width) - 1; in MakeMaskByExcluding() 50 * Base struct for registers mask, template-parametrized by number of registers. 51 * Currently we don't support registers number greater than 32. 59 // We don't support architectures with CPU registers number, greater than 32. 67 // NOLINTNEXTLINE(google-explicit-constructor) 90 constexpr bool Test(size_t bit) const in Test() argument 92 ASSERT(bit < Size()); in Test() 93 return ((value_ >> static_cast<ValueType>(bit)) & 1U) != 0; in Test() [all …]
|
| 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/ets_runtime/ecmascript/jspandafile/ |
| D | constpool_value.h | 7 * http://www.apache.org/licenses/LICENSE-2.0 64 // NOLINTNEXTLINE(readability-magic-numbers) 65 using ConstPoolIndexField = BitField<uint32_t, 0, 32>; // 32: 32 bit 66 // NOLINTNEXTLINE(readability-magic-numbers) 67 using ConstPoolTypeField = BitField<ConstPoolType, 32, 4>; // 32: offset, 4: 4bit
|
| /arkcompiler/runtime_core/docs/ |
| 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 | 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 …]
|
| /arkcompiler/runtime_core/libpandabase/tests/ |
| D | regmask_test.cpp | 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 29 …ASSERT_EQ(mask.GetMaxRegister(), base.size() - Clz(static_cast<RegMask::ValueType>(base.to_ulong()… in CompareWithBitset() 61 void TestDistance(RegMask mask, size_t bit, size_t bits_before, size_t bits_after) in TestDistance() argument 63 ASSERT_EQ(mask.GetDistanceFromTail(bit), bits_before); in TestDistance() 64 ASSERT_EQ(mask.GetDistanceFromHead(bit), bits_after); in TestDistance() 71 TestRegMask(MakeMaskByExcluding(32, 0)); 72 TestRegMask(MakeMaskByExcluding(32, 31)); 73 TestRegMask(MakeMaskByExcluding(32, 0, 31)); 74 TestRegMask(MakeMaskByExcluding(32, 0, 15, 31));
|
| D | hash_test.cpp | 2 * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 7 * http://www.apache.org/licenses/LICENSE-2.0 69 std::cout << "Failed 32bit key hash on seed = 0x" << std::hex << seed_ << std::endl; in OneObject32bitsHashTest() 77 std::cout << "Failed 32bit key hash on seed = 0x" << std::hex << seed_ << std::endl; in OneObject32bitsHashTest() 86 std::cout << "Failed 32bit key hash on seed = 0x" << std::hex << seed_ << std::endl; in OneObject32bitsHashTest() 126 …reinterpret_cast<char *>((reinterpret_cast<uintptr_t>(mem) + PAGE_SIZE) - sizeof(char) * string_si… in EndOfPageStringHashTest() 131 uint32_t second_hash = T::GetHash32(mutf8_string, string_size - 1); in EndOfPageStringHashTest() 139 // Do it for 8 bits key, 32 bits and 40 bits key.
|
| /arkcompiler/runtime_core/runtime/bridge/arch/arm/ |
| 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} 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)) 61 CFI_REL_OFFSET(r7, -(5 * 4)) [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 …]
|
| 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 85 strlt \tmp1, [\gpr_ptr, #-4]! [all …]
|
| 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 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)) 59 CFI_REL_OFFSET(r5, -(7 * 4)) 60 CFI_REL_OFFSET(r4, -(8 * 4)) [all …]
|
| /arkcompiler/ets_runtime/ecmascript/base/ |
| D | bit_helper.h | 7 * http://www.apache.org/licenses/LICENSE-2.0 50 *buffer = reinterpret_cast<void *>(reinterpret_cast<uintptr_t>(*buffer) + result->Size()); in ReadBufferInSize() 68 // 32 : 32 mean the bits of type T is less than 32 in CountLeadingZeros() 69 return __builtin_clz(static_cast<uint32_t>(value)) - (32 - std::numeric_limits<T>::digits); in CountLeadingZeros() 129 /// isMask_64 - This function returns true if the argument is a non-empty 130 /// sequence of ones starting at the least significant bit with the remainder 131 /// zero (64 bit version). 137 /// isShiftedMask_64 - This function returns true if the argument contains a 138 /// non-empty sequence of ones with the remainder zero (64 bit version.) 141 return Value && IsMask_64((Value - 1) | Value); in IsShiftedMask_64() [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 62 // %eax - SHORTY_PTR_REG 63 // %edx - SHORTY_REG 64 // %ecx - shorty value (no initialization needed) 65 // %ebx - method 95 cmpl $(SHORTY_NUM_64BIT_TYPES - 1), %ecx [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)) 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 121 cmpl $(SHORTY_REFERENCE - SHORTY_FIRST_64), %ecx [all …]
|
| /arkcompiler/ets_runtime/ecmascript/mem/ |
| D | gc_bitset.h | 7 * http://www.apache.org/licenses/LICENSE-2.0 24 // |----word(32 bit)----|----word(32 bit)----|----...----|----word(32 bit)----|----word(32 bit)----| 25 // |---------------------------------------GCBitset(4 kb)------------------------------------------| 39 static constexpr uint32_t BIT_PER_WORD_MASK = BIT_PER_WORD - 1; 101 uint32_t endIndex = Index(offsetEnd - 1); in ClearBitRange() 102 uint32_t endIndexMask = Mask(IndexInWord(offsetEnd - 1)); in ClearBitRange() 105 ClearWord<mode>(startIndex, ~(startIndexMask - 1)); in ClearBitRange() 106 ClearWord<mode>(endIndex, endIndexMask | (endIndexMask - 1)); in ClearBitRange() 111 ClearWord<mode>(endIndex, endIndexMask | (endIndexMask - startIndexMask)); in ClearBitRange() 163 words[i] |= bitset->Words()[i]; in Merge() [all …]
|
| /arkcompiler/runtime_core/tests/verifier-tests/ |
| D | bug_2107_2.pa | 1 # Copyright (c) 2021-2022 Huawei Device Co., Ltd. 6 # http://www.apache.org/licenses/LICENSE-2.0 16 #--- 17 #- title: Integer truncations and extensions. 19 # Truncations discard all but N lowest-order bits, where N is the bit size of destination 24 # - x_none 26 # - sig: i64toi32 27 # acc: inout:i64->i32 29 # - op_none 31 # - acc_type [all …]
|
| D | bug_2107_1.pa | 1 # Copyright (c) 2021-2022 Huawei Device Co., Ltd. 6 # http://www.apache.org/licenses/LICENSE-2.0 16 #--- 17 #- title: Type conversions 22 # - x_none 24 # - sig: i64tof64 25 # acc: inout:i64->f64 27 # - op_none 29 # - acc_type 31 ## runner-option: verifier-failure [all …]
|
| /arkcompiler/runtime_core/tests/cts-generator/cts-template/ |
| D | i32tof32.yaml | 1 # Copyright (c) 2021-2022 Huawei Device Co., Ltd. 6 # http://www.apache.org/licenses/LICENSE-2.0 16 - file-name: "i32tof32" 22 - x_none 24 - file-name: "op_none" 27 - sig: i32tof32 28 acc: inout:i32->f32 31 code-template: | 40 - values: 41 - "0" [all …]
|
| D | i64toi32.yaml | 1 # Copyright (c) 2021-2022 Huawei Device Co., Ltd. 6 # http://www.apache.org/licenses/LICENSE-2.0 16 - file-name: "i64toi32" 21 … Truncations discard all but N lowest-order bits, where N is the bit size of destination type. 23 - x_none 25 - file-name: "op_none" 28 - sig: i64toi32 29 acc: inout:i64->i32 32 code-template: | 46 - values: [all …]
|
| /arkcompiler/runtime_core/tests/checked/ |
| D | ldarray_obj.pa | 1 # Copyright (c) 2021-2022 Huawei Device Co., Ltd. 6 # http://www.apache.org/licenses/LICENSE-2.0 15 #! RUN force_jit: true, options: "--compiler-regex=_GLOBAL::test", entry: "_GLOBAL::main",… 28 # v1 <- array 38 # Second parameter is 32-bit, but here we call it with 64-bit
|
| /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 …]
|
| /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/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… 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] 42 // \ [0xFFFE] [48 bit any value] [all …]
|
| /arkcompiler/ets_frontend/merge_abc/ |
| D | HowToWriteProtoForAssemblyStuff.md | 56 |:-----------|:---------------|:------------| 58 |float |float | 32位浮点数 59 |int32 |int32 | 32位整数 61 |uint32 |uint32 | 32位无符号整数 63 |sint32 |int32 | 32位整数,处理负数效率比int32更高 70 |string | string | 一个字符串必须是UTF-8编码或者7-bit ASCII编码的文本
|