Home
last modified time | relevance | path

Searched +full:16 +full:- +full:bit (Results 1 – 25 of 71) sorted by relevance

123

/arkcompiler/runtime_core/docs/
D2022-08-18-isa-changelog.md1 # 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 …]
Dcode_metainfo.md5 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 …]
Daot.md15 |---------|-------|----------|
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 …]
Dassembly_format.md5 … 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 …]
Dfile_format.md13 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/
Dinterpreter_to_compiled_code_bridge_x86.S2 * 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 …]
Dcompiled_code_to_interpreter_bridge_x86.S2 * 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/
Dencode_bit.h7 * 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/
Dcompiled_code_to_interpreter_bridge_armhf.S2 * 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 …]
Dcompiled_code_to_interpreter_bridge_arm.S2 * 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 …]
Dinterpreter_to_compiled_code_bridge_armhf.S2 * 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 …]
Dinterpreter_to_compiled_code_bridge_arm.S2 * 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/
Dtagged_value.h2 * 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/
Dassembler_aarch64.cpp7 * 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 …]
Dassembler_aarch64_constants.h7 * 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/
Dbase64.cpp7 * 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/
Dinterpreter_to_compiled_code_bridge_amd64.S2 * 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/
Dmath_helpers.h2 * 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/
Dinterpreter_to_compiled_code_bridge_aarch64.S2 * 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/
Dindex_accessor.h7 * 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/
Djs_tagged_value.h7 * 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/
Dmethod_literal.h7 * 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/
Dbitmap_test_base.h2 * 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/
Dinstructions.yaml1 # 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/
Dbuiltins_bigint_test.cpp7 * 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 …]

123