[vm] Refactor duplicated slots and rename offsets
This change removes distinct Slots for the same field: PointerBase_data_field -> PointerBase_data Pointer_data_field -> PointerBase_data TypedDataBase_data_field -> PointerBase_data Also, the following slot is renamed to match field name: TypedDataView_data -> TypedDataView_typed_data The following offsets are renamed to match field names / declarations in Untagged* classes: PointerBase::data_field_offset -> PointerBase::data_offset TypedData::data_offset -> TypedData::payload_offset TypedDataView::data_offset -> TypedDataView::typed_data_offset TEST=ci Fixes https://github.com/dart-lang/sdk/issues/48273 Change-Id: I602545fc43018494bcb24d8692292fdbc6a8f3e0 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231160 Reviewed-by: Martin Kustermann <kustermann@google.com> Reviewed-by: Daco Harkes <dacoharkes@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>
This commit is contained in:
committed by
Commit Bot
parent
58a42b5cfc
commit
45f42d0be8
@@ -302,10 +302,10 @@ void AsmIntrinsifier::Bigint_lsh(Assembler* assembler, Label* normal_ir_body) {
|
||||
// R4 = n ~/ _DIGIT_BITS
|
||||
__ Asr(R4, R3, Operand(5));
|
||||
// R8 = &x_digits[0]
|
||||
__ add(R8, R1, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R8, R1, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
// R6 = &r_digits[1]
|
||||
__ add(R6, R2,
|
||||
Operand(target::TypedData::data_offset() - kHeapObjectTag +
|
||||
Operand(target::TypedData::payload_offset() - kHeapObjectTag +
|
||||
kBytesPerBigIntDigit));
|
||||
// R2 = &x_digits[x_used]
|
||||
__ add(R2, R8, Operand(R0, LSL, 1));
|
||||
@@ -342,9 +342,9 @@ void AsmIntrinsifier::Bigint_rsh(Assembler* assembler, Label* normal_ir_body) {
|
||||
// R4 = n ~/ _DIGIT_BITS
|
||||
__ Asr(R4, R3, Operand(5));
|
||||
// R6 = &r_digits[0]
|
||||
__ add(R6, R2, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R6, R2, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
// R2 = &x_digits[n ~/ _DIGIT_BITS]
|
||||
__ add(R2, R1, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R2, R1, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
__ add(R2, R2, Operand(R4, LSL, 2));
|
||||
// R8 = &r_digits[x_used - n ~/ _DIGIT_BITS - 1]
|
||||
__ add(R4, R4, Operand(1));
|
||||
@@ -382,17 +382,17 @@ void AsmIntrinsifier::Bigint_absAdd(Assembler* assembler,
|
||||
// R0 = used, R1 = digits
|
||||
__ ldrd(R0, R1, SP, 3 * target::kWordSize);
|
||||
// R1 = &digits[0]
|
||||
__ add(R1, R1, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R1, R1, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R2 = a_used, R3 = a_digits
|
||||
__ ldrd(R2, R3, SP, 1 * target::kWordSize);
|
||||
// R3 = &a_digits[0]
|
||||
__ add(R3, R3, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R3, R3, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R8 = r_digits
|
||||
__ ldr(R8, Address(SP, 0 * target::kWordSize));
|
||||
// R8 = &r_digits[0]
|
||||
__ add(R8, R8, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R8, R8, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R2 = &digits[a_used >> 1], a_used is Smi.
|
||||
__ add(R2, R1, Operand(R2, LSL, 1));
|
||||
@@ -442,17 +442,17 @@ void AsmIntrinsifier::Bigint_absSub(Assembler* assembler,
|
||||
// R0 = used, R1 = digits
|
||||
__ ldrd(R0, R1, SP, 3 * target::kWordSize);
|
||||
// R1 = &digits[0]
|
||||
__ add(R1, R1, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R1, R1, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R2 = a_used, R3 = a_digits
|
||||
__ ldrd(R2, R3, SP, 1 * target::kWordSize);
|
||||
// R3 = &a_digits[0]
|
||||
__ add(R3, R3, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R3, R3, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R8 = r_digits
|
||||
__ ldr(R8, Address(SP, 0 * target::kWordSize));
|
||||
// R8 = &r_digits[0]
|
||||
__ add(R8, R8, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R8, R8, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R2 = &digits[a_used >> 1], a_used is Smi.
|
||||
__ add(R2, R1, Operand(R2, LSL, 1));
|
||||
@@ -522,7 +522,7 @@ void AsmIntrinsifier::Bigint_mulAdd(Assembler* assembler,
|
||||
// R3 = x, no_op if x == 0
|
||||
__ ldrd(R0, R1, SP, 5 * target::kWordSize); // R0 = xi as Smi, R1 = x_digits.
|
||||
__ add(R1, R1, Operand(R0, LSL, 1));
|
||||
__ ldr(R3, FieldAddress(R1, target::TypedData::data_offset()));
|
||||
__ ldr(R3, FieldAddress(R1, target::TypedData::payload_offset()));
|
||||
__ tst(R3, Operand(R3));
|
||||
__ b(&done, EQ);
|
||||
|
||||
@@ -534,12 +534,12 @@ void AsmIntrinsifier::Bigint_mulAdd(Assembler* assembler,
|
||||
// R4 = mip = &m_digits[i >> 1]
|
||||
__ ldrd(R0, R1, SP, 3 * target::kWordSize); // R0 = i as Smi, R1 = m_digits.
|
||||
__ add(R1, R1, Operand(R0, LSL, 1));
|
||||
__ add(R4, R1, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R4, R1, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R9 = ajp = &a_digits[j >> 1]
|
||||
__ ldrd(R0, R1, SP, 1 * target::kWordSize); // R0 = j as Smi, R1 = a_digits.
|
||||
__ add(R1, R1, Operand(R0, LSL, 1));
|
||||
__ add(R9, R1, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R9, R1, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R1 = c = 0
|
||||
__ mov(R1, Operand(0));
|
||||
@@ -624,7 +624,7 @@ void AsmIntrinsifier::Bigint_sqrAdd(Assembler* assembler,
|
||||
// R4 = xip = &x_digits[i >> 1]
|
||||
__ ldrd(R2, R3, SP, 2 * target::kWordSize); // R2 = i as Smi, R3 = x_digits
|
||||
__ add(R3, R3, Operand(R2, LSL, 1));
|
||||
__ add(R4, R3, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R4, R3, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R3 = x = *xip++, return if x == 0
|
||||
Label x_zero;
|
||||
@@ -635,7 +635,7 @@ void AsmIntrinsifier::Bigint_sqrAdd(Assembler* assembler,
|
||||
// R6 = ajp = &a_digits[i]
|
||||
__ ldr(R1, Address(SP, 1 * target::kWordSize)); // a_digits
|
||||
__ add(R1, R1, Operand(R2, LSL, 2)); // j == 2*i, i is Smi.
|
||||
__ add(R6, R1, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R6, R1, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R8:R0 = t = x*x + *ajp
|
||||
__ ldr(R0, Address(R6, 0));
|
||||
@@ -727,19 +727,19 @@ void AsmIntrinsifier::Montgomery_mulMod(Assembler* assembler,
|
||||
__ ldr(R4, Address(SP, 2 * target::kWordSize)); // args
|
||||
|
||||
// R3 = rho = args[2]
|
||||
__ ldr(R3, FieldAddress(R4, target::TypedData::data_offset() +
|
||||
__ ldr(R3, FieldAddress(R4, target::TypedData::payload_offset() +
|
||||
2 * kBytesPerBigIntDigit));
|
||||
|
||||
// R2 = digits[i >> 1]
|
||||
__ ldrd(R0, R1, SP, 0 * target::kWordSize); // R0 = i as Smi, R1 = digits
|
||||
__ add(R1, R1, Operand(R0, LSL, 1));
|
||||
__ ldr(R2, FieldAddress(R1, target::TypedData::data_offset()));
|
||||
__ ldr(R2, FieldAddress(R1, target::TypedData::payload_offset()));
|
||||
|
||||
// R1:R0 = t = rho*d
|
||||
__ umull(R0, R1, R2, R3);
|
||||
|
||||
// args[4] = t mod DIGIT_BASE = low32(t)
|
||||
__ str(R0, FieldAddress(R4, target::TypedData::data_offset() +
|
||||
__ str(R0, FieldAddress(R4, target::TypedData::payload_offset() +
|
||||
4 * kBytesPerBigIntDigit));
|
||||
|
||||
__ mov(R0, Operand(target::ToRawSmi(1))); // One digit processed.
|
||||
|
||||
@@ -226,12 +226,12 @@ void AsmIntrinsifier::Bigint_lsh(Assembler* assembler, Label* normal_ir_body) {
|
||||
// R0 = n ~/ (2*_DIGIT_BITS)
|
||||
__ AsrImmediate(R0, R5, 6);
|
||||
// R6 = &x_digits[0]
|
||||
__ add(R6, R3, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R6, R3, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
// R7 = &x_digits[2*R2]
|
||||
__ add(R7, R6, Operand(R2, LSL, 3));
|
||||
// R8 = &r_digits[2*1]
|
||||
__ add(R8, R4,
|
||||
Operand(target::TypedData::data_offset() - kHeapObjectTag +
|
||||
Operand(target::TypedData::payload_offset() - kHeapObjectTag +
|
||||
2 * kBytesPerBigIntDigit));
|
||||
// R8 = &r_digits[2*(R2 + n ~/ (2*_DIGIT_BITS) + 1)]
|
||||
__ add(R0, R0, Operand(R2));
|
||||
@@ -276,9 +276,9 @@ void AsmIntrinsifier::Bigint_rsh(Assembler* assembler, Label* normal_ir_body) {
|
||||
// R0 = n ~/ (2*_DIGIT_BITS)
|
||||
__ AsrImmediate(R0, R5, 6);
|
||||
// R8 = &r_digits[0]
|
||||
__ add(R8, R4, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R8, R4, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
// R7 = &x_digits[2*(n ~/ (2*_DIGIT_BITS))]
|
||||
__ add(R7, R3, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R7, R3, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
__ add(R7, R7, Operand(R0, LSL, 3));
|
||||
// R6 = &r_digits[2*(R2 - n ~/ (2*_DIGIT_BITS) - 1)]
|
||||
__ add(R0, R0, Operand(1));
|
||||
@@ -323,7 +323,7 @@ void AsmIntrinsifier::Bigint_absAdd(Assembler* assembler,
|
||||
__ add(R2, R2, Operand(2)); // used > 0, Smi. R2 = used + 1, round up.
|
||||
__ add(R2, ZR, Operand(R2, ASR, 2)); // R2 = num of digit pairs to process.
|
||||
// R3 = &digits[0]
|
||||
__ add(R3, R3, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R3, R3, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R4 = a_used, R5 = a_digits
|
||||
__ ldp(R4, R5, Address(SP, 1 * target::kWordSize, Address::PairOffset));
|
||||
@@ -333,12 +333,12 @@ void AsmIntrinsifier::Bigint_absAdd(Assembler* assembler,
|
||||
__ add(R4, R4, Operand(2)); // a_used > 0, Smi. R4 = a_used + 1, round up.
|
||||
__ add(R4, ZR, Operand(R4, ASR, 2)); // R4 = num of digit pairs to process.
|
||||
// R5 = &a_digits[0]
|
||||
__ add(R5, R5, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R5, R5, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R6 = r_digits
|
||||
__ ldr(R6, Address(SP, 0 * target::kWordSize));
|
||||
// R6 = &r_digits[0]
|
||||
__ add(R6, R6, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R6, R6, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R7 = &digits[a_used rounded up to even number].
|
||||
__ add(R7, R3, Operand(R4, LSL, 3));
|
||||
@@ -395,7 +395,7 @@ void AsmIntrinsifier::Bigint_absSub(Assembler* assembler,
|
||||
__ add(R2, R2, Operand(2)); // used > 0, Smi. R2 = used + 1, round up.
|
||||
__ add(R2, ZR, Operand(R2, ASR, 2)); // R2 = num of digit pairs to process.
|
||||
// R3 = &digits[0]
|
||||
__ add(R3, R3, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R3, R3, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R4 = a_used, R5 = a_digits
|
||||
__ ldp(R4, R5, Address(SP, 1 * target::kWordSize, Address::PairOffset));
|
||||
@@ -405,12 +405,12 @@ void AsmIntrinsifier::Bigint_absSub(Assembler* assembler,
|
||||
__ add(R4, R4, Operand(2)); // a_used > 0, Smi. R4 = a_used + 1, round up.
|
||||
__ add(R4, ZR, Operand(R4, ASR, 2)); // R4 = num of digit pairs to process.
|
||||
// R5 = &a_digits[0]
|
||||
__ add(R5, R5, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R5, R5, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R6 = r_digits
|
||||
__ ldr(R6, Address(SP, 0 * target::kWordSize));
|
||||
// R6 = &r_digits[0]
|
||||
__ add(R6, R6, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R6, R6, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R7 = &digits[a_used rounded up to even number].
|
||||
__ add(R7, R3, Operand(R4, LSL, 3));
|
||||
@@ -485,7 +485,7 @@ void AsmIntrinsifier::Bigint_mulAdd(Assembler* assembler,
|
||||
__ sxtw(R0, R0);
|
||||
#endif
|
||||
__ add(R1, R1, Operand(R0, LSL, 1));
|
||||
__ ldr(R3, FieldAddress(R1, target::TypedData::data_offset()));
|
||||
__ ldr(R3, FieldAddress(R1, target::TypedData::payload_offset()));
|
||||
__ tst(R3, Operand(R3));
|
||||
__ b(&done, EQ);
|
||||
|
||||
@@ -505,7 +505,7 @@ void AsmIntrinsifier::Bigint_mulAdd(Assembler* assembler,
|
||||
__ sxtw(R0, R0);
|
||||
#endif
|
||||
__ add(R1, R1, Operand(R0, LSL, 1));
|
||||
__ add(R4, R1, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R4, R1, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R5 = ajp = &a_digits[j >> 1]
|
||||
// R0 = j as Smi, R1 = a_digits.
|
||||
@@ -514,7 +514,7 @@ void AsmIntrinsifier::Bigint_mulAdd(Assembler* assembler,
|
||||
__ sxtw(R0, R0);
|
||||
#endif
|
||||
__ add(R1, R1, Operand(R0, LSL, 1));
|
||||
__ add(R5, R1, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R5, R1, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R1 = c = 0
|
||||
__ mov(R1, ZR);
|
||||
@@ -605,7 +605,7 @@ void AsmIntrinsifier::Bigint_sqrAdd(Assembler* assembler,
|
||||
__ sxtw(R2, R2);
|
||||
#endif
|
||||
__ add(R3, R3, Operand(R2, LSL, 1));
|
||||
__ add(R4, R3, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R4, R3, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R3 = x = *xip++, return if x == 0
|
||||
Label x_zero;
|
||||
@@ -616,7 +616,7 @@ void AsmIntrinsifier::Bigint_sqrAdd(Assembler* assembler,
|
||||
// R5 = ajp = &a_digits[i]
|
||||
__ ldr(R1, Address(SP, 1 * target::kWordSize)); // a_digits
|
||||
__ add(R1, R1, Operand(R2, LSL, 2)); // j == 2*i, i is Smi.
|
||||
__ add(R5, R1, Operand(target::TypedData::data_offset() - kHeapObjectTag));
|
||||
__ add(R5, R1, Operand(target::TypedData::payload_offset() - kHeapObjectTag));
|
||||
|
||||
// R6:R1 = t = x*x + *ajp
|
||||
__ ldr(R0, Address(R5, 0));
|
||||
@@ -741,7 +741,7 @@ void AsmIntrinsifier::Bigint_estimateQuotientDigit(Assembler* assembler,
|
||||
__ ldr(R4, Address(SP, 2 * target::kWordSize)); // args
|
||||
|
||||
// R3 = yt = args[0..1]
|
||||
__ ldr(R3, FieldAddress(R4, target::TypedData::data_offset()));
|
||||
__ ldr(R3, FieldAddress(R4, target::TypedData::payload_offset()));
|
||||
|
||||
// R2 = dh = digits[(i >> 1) - 1 .. i >> 1]
|
||||
// R0 = i as Smi, R1 = digits
|
||||
@@ -750,8 +750,8 @@ void AsmIntrinsifier::Bigint_estimateQuotientDigit(Assembler* assembler,
|
||||
__ sxtw(R0, R0);
|
||||
#endif
|
||||
__ add(R1, R1, Operand(R0, LSL, 1));
|
||||
__ ldr(R2, FieldAddress(
|
||||
R1, target::TypedData::data_offset() - kBytesPerBigIntDigit));
|
||||
__ ldr(R2, FieldAddress(R1, target::TypedData::payload_offset() -
|
||||
kBytesPerBigIntDigit));
|
||||
|
||||
// R0 = qd = (DIGIT_MASK << 32) | DIGIT_MASK = -1
|
||||
__ movn(R0, Immediate(0), 0);
|
||||
@@ -762,7 +762,7 @@ void AsmIntrinsifier::Bigint_estimateQuotientDigit(Assembler* assembler,
|
||||
__ b(&return_qd, EQ);
|
||||
|
||||
// R1 = dl = digits[(i >> 1) - 3 .. (i >> 1) - 2]
|
||||
__ ldr(R1, FieldAddress(R1, target::TypedData::data_offset() -
|
||||
__ ldr(R1, FieldAddress(R1, target::TypedData::payload_offset() -
|
||||
3 * kBytesPerBigIntDigit));
|
||||
|
||||
// R5 = yth = yt >> 32
|
||||
@@ -867,7 +867,7 @@ void AsmIntrinsifier::Bigint_estimateQuotientDigit(Assembler* assembler,
|
||||
|
||||
__ Bind(&return_qd);
|
||||
// args[2..3] = qd
|
||||
__ str(R0, FieldAddress(R4, target::TypedData::data_offset() +
|
||||
__ str(R0, FieldAddress(R4, target::TypedData::payload_offset() +
|
||||
2 * kBytesPerBigIntDigit));
|
||||
|
||||
__ LoadImmediate(R0, target::ToRawSmi(2)); // Two digits processed.
|
||||
@@ -889,7 +889,7 @@ void AsmIntrinsifier::Montgomery_mulMod(Assembler* assembler,
|
||||
__ ldr(R4, Address(SP, 2 * target::kWordSize)); // args
|
||||
|
||||
// R3 = rho = args[2..3]
|
||||
__ ldr(R3, FieldAddress(R4, target::TypedData::data_offset() +
|
||||
__ ldr(R3, FieldAddress(R4, target::TypedData::payload_offset() +
|
||||
2 * kBytesPerBigIntDigit));
|
||||
|
||||
// R2 = digits[i >> 1 .. (i >> 1) + 1]
|
||||
@@ -899,13 +899,13 @@ void AsmIntrinsifier::Montgomery_mulMod(Assembler* assembler,
|
||||
__ sxtw(R0, R0);
|
||||
#endif
|
||||
__ add(R1, R1, Operand(R0, LSL, 1));
|
||||
__ ldr(R2, FieldAddress(R1, target::TypedData::data_offset()));
|
||||
__ ldr(R2, FieldAddress(R1, target::TypedData::payload_offset()));
|
||||
|
||||
// R0 = rho*d mod DIGIT_BASE
|
||||
__ mul(R0, R2, R3); // R0 = low64(R2*R3).
|
||||
|
||||
// args[4 .. 5] = R0
|
||||
__ str(R0, FieldAddress(R4, target::TypedData::data_offset() +
|
||||
__ str(R0, FieldAddress(R4, target::TypedData::payload_offset() +
|
||||
4 * kBytesPerBigIntDigit));
|
||||
|
||||
__ LoadImmediate(R0, target::ToRawSmi(2)); // Two digits processed.
|
||||
|
||||
@@ -317,13 +317,13 @@ void AsmIntrinsifier::Bigint_lsh(Assembler* assembler, Label* normal_ir_body) {
|
||||
__ movl(ESI, ECX);
|
||||
__ sarl(ESI, Immediate(5)); // ESI = n ~/ _DIGIT_BITS.
|
||||
__ leal(EBX,
|
||||
FieldAddress(EBX, ESI, TIMES_4, target::TypedData::data_offset()));
|
||||
FieldAddress(EBX, ESI, TIMES_4, target::TypedData::payload_offset()));
|
||||
__ movl(ESI, Address(ESP, 4 * target::kWordSize)); // x_used > 0, Smi.
|
||||
__ SmiUntag(ESI);
|
||||
__ decl(ESI);
|
||||
__ xorl(EAX, EAX); // EAX = 0.
|
||||
__ movl(EDX,
|
||||
FieldAddress(EDI, ESI, TIMES_4, target::TypedData::data_offset()));
|
||||
FieldAddress(EDI, ESI, TIMES_4, target::TypedData::payload_offset()));
|
||||
__ shldl(EAX, EDX, ECX);
|
||||
__ movl(Address(EBX, ESI, TIMES_4, kBytesPerBigIntDigit), EAX);
|
||||
Label last;
|
||||
@@ -334,7 +334,7 @@ void AsmIntrinsifier::Bigint_lsh(Assembler* assembler, Label* normal_ir_body) {
|
||||
__ movl(EAX, EDX);
|
||||
__ movl(EDX, FieldAddress(
|
||||
EDI, ESI, TIMES_4,
|
||||
target::TypedData::data_offset() - kBytesPerBigIntDigit));
|
||||
target::TypedData::payload_offset() - kBytesPerBigIntDigit));
|
||||
__ shldl(EAX, EDX, ECX);
|
||||
__ movl(Address(EBX, ESI, TIMES_4, 0), EAX);
|
||||
__ decl(ESI);
|
||||
@@ -368,11 +368,11 @@ void AsmIntrinsifier::Bigint_rsh(Assembler* assembler, Label* normal_ir_body) {
|
||||
__ decl(ESI);
|
||||
// EDI = &x_digits[x_used - 1].
|
||||
__ leal(EDI,
|
||||
FieldAddress(EDI, ESI, TIMES_4, target::TypedData::data_offset()));
|
||||
FieldAddress(EDI, ESI, TIMES_4, target::TypedData::payload_offset()));
|
||||
__ subl(ESI, EDX);
|
||||
// EBX = &r_digits[x_used - 1 - (n ~/ 32)].
|
||||
__ leal(EBX,
|
||||
FieldAddress(EBX, ESI, TIMES_4, target::TypedData::data_offset()));
|
||||
FieldAddress(EBX, ESI, TIMES_4, target::TypedData::payload_offset()));
|
||||
__ negl(ESI);
|
||||
__ movl(EDX, Address(EDI, ESI, TIMES_4, 0));
|
||||
Label last;
|
||||
@@ -424,10 +424,10 @@ void AsmIntrinsifier::Bigint_absAdd(Assembler* assembler,
|
||||
__ Bind(&add_loop);
|
||||
// Loop a_used times, ECX = a_used, ECX > 0.
|
||||
__ movl(EAX,
|
||||
FieldAddress(EDI, EDX, TIMES_4, target::TypedData::data_offset()));
|
||||
FieldAddress(EDI, EDX, TIMES_4, target::TypedData::payload_offset()));
|
||||
__ adcl(EAX,
|
||||
FieldAddress(ESI, EDX, TIMES_4, target::TypedData::data_offset()));
|
||||
__ movl(FieldAddress(EBX, EDX, TIMES_4, target::TypedData::data_offset()),
|
||||
FieldAddress(ESI, EDX, TIMES_4, target::TypedData::payload_offset()));
|
||||
__ movl(FieldAddress(EBX, EDX, TIMES_4, target::TypedData::payload_offset()),
|
||||
EAX);
|
||||
__ incl(EDX); // Does not affect carry flag.
|
||||
__ decl(ECX); // Does not affect carry flag.
|
||||
@@ -442,9 +442,9 @@ void AsmIntrinsifier::Bigint_absAdd(Assembler* assembler,
|
||||
__ Bind(&carry_loop);
|
||||
// Loop used - a_used times, ECX = used - a_used, ECX > 0.
|
||||
__ movl(EAX,
|
||||
FieldAddress(EDI, EDX, TIMES_4, target::TypedData::data_offset()));
|
||||
FieldAddress(EDI, EDX, TIMES_4, target::TypedData::payload_offset()));
|
||||
__ adcl(EAX, Immediate(0));
|
||||
__ movl(FieldAddress(EBX, EDX, TIMES_4, target::TypedData::data_offset()),
|
||||
__ movl(FieldAddress(EBX, EDX, TIMES_4, target::TypedData::payload_offset()),
|
||||
EAX);
|
||||
__ incl(EDX); // Does not affect carry flag.
|
||||
__ decl(ECX); // Does not affect carry flag.
|
||||
@@ -453,7 +453,7 @@ void AsmIntrinsifier::Bigint_absAdd(Assembler* assembler,
|
||||
__ Bind(&last_carry);
|
||||
__ movl(EAX, Immediate(0));
|
||||
__ adcl(EAX, Immediate(0));
|
||||
__ movl(FieldAddress(EBX, EDX, TIMES_4, target::TypedData::data_offset()),
|
||||
__ movl(FieldAddress(EBX, EDX, TIMES_4, target::TypedData::payload_offset()),
|
||||
EAX);
|
||||
|
||||
// Restore THR and return.
|
||||
@@ -490,10 +490,10 @@ void AsmIntrinsifier::Bigint_absSub(Assembler* assembler,
|
||||
__ Bind(&sub_loop);
|
||||
// Loop a_used times, ECX = a_used, ECX > 0.
|
||||
__ movl(EAX,
|
||||
FieldAddress(EDI, EDX, TIMES_4, target::TypedData::data_offset()));
|
||||
FieldAddress(EDI, EDX, TIMES_4, target::TypedData::payload_offset()));
|
||||
__ sbbl(EAX,
|
||||
FieldAddress(ESI, EDX, TIMES_4, target::TypedData::data_offset()));
|
||||
__ movl(FieldAddress(EBX, EDX, TIMES_4, target::TypedData::data_offset()),
|
||||
FieldAddress(ESI, EDX, TIMES_4, target::TypedData::payload_offset()));
|
||||
__ movl(FieldAddress(EBX, EDX, TIMES_4, target::TypedData::payload_offset()),
|
||||
EAX);
|
||||
__ incl(EDX); // Does not affect carry flag.
|
||||
__ decl(ECX); // Does not affect carry flag.
|
||||
@@ -508,9 +508,9 @@ void AsmIntrinsifier::Bigint_absSub(Assembler* assembler,
|
||||
__ Bind(&carry_loop);
|
||||
// Loop used - a_used times, ECX = used - a_used, ECX > 0.
|
||||
__ movl(EAX,
|
||||
FieldAddress(EDI, EDX, TIMES_4, target::TypedData::data_offset()));
|
||||
FieldAddress(EDI, EDX, TIMES_4, target::TypedData::payload_offset()));
|
||||
__ sbbl(EAX, Immediate(0));
|
||||
__ movl(FieldAddress(EBX, EDX, TIMES_4, target::TypedData::data_offset()),
|
||||
__ movl(FieldAddress(EBX, EDX, TIMES_4, target::TypedData::payload_offset()),
|
||||
EAX);
|
||||
__ incl(EDX); // Does not affect carry flag.
|
||||
__ decl(ECX); // Does not affect carry flag.
|
||||
@@ -557,7 +557,7 @@ void AsmIntrinsifier::Bigint_mulAdd(Assembler* assembler,
|
||||
__ movl(ECX, Address(ESP, 7 * target::kWordSize)); // x_digits
|
||||
__ movl(EAX, Address(ESP, 6 * target::kWordSize)); // xi is Smi
|
||||
__ movl(EBX,
|
||||
FieldAddress(ECX, EAX, TIMES_2, target::TypedData::data_offset()));
|
||||
FieldAddress(ECX, EAX, TIMES_2, target::TypedData::payload_offset()));
|
||||
__ testl(EBX, EBX);
|
||||
__ j(ZERO, &no_op, Assembler::kNearJump);
|
||||
|
||||
@@ -574,13 +574,13 @@ void AsmIntrinsifier::Bigint_mulAdd(Assembler* assembler,
|
||||
__ movl(EDI, Address(ESP, 6 * target::kWordSize)); // m_digits
|
||||
__ movl(EAX, Address(ESP, 5 * target::kWordSize)); // i is Smi
|
||||
__ leal(EDI,
|
||||
FieldAddress(EDI, EAX, TIMES_2, target::TypedData::data_offset()));
|
||||
FieldAddress(EDI, EAX, TIMES_2, target::TypedData::payload_offset()));
|
||||
|
||||
// ESI = ajp = &a_digits[j >> 1]
|
||||
__ movl(ESI, Address(ESP, 4 * target::kWordSize)); // a_digits
|
||||
__ movl(EAX, Address(ESP, 3 * target::kWordSize)); // j is Smi
|
||||
__ leal(ESI,
|
||||
FieldAddress(ESI, EAX, TIMES_2, target::TypedData::data_offset()));
|
||||
FieldAddress(ESI, EAX, TIMES_2, target::TypedData::payload_offset()));
|
||||
|
||||
// Save n
|
||||
__ pushl(EDX);
|
||||
@@ -678,7 +678,7 @@ void AsmIntrinsifier::Bigint_sqrAdd(Assembler* assembler,
|
||||
__ movl(EDI, Address(ESP, 4 * target::kWordSize)); // x_digits
|
||||
__ movl(EAX, Address(ESP, 3 * target::kWordSize)); // i is Smi
|
||||
__ leal(EDI,
|
||||
FieldAddress(EDI, EAX, TIMES_2, target::TypedData::data_offset()));
|
||||
FieldAddress(EDI, EAX, TIMES_2, target::TypedData::payload_offset()));
|
||||
|
||||
// EBX = x = *xip++, return if x == 0
|
||||
Label x_zero;
|
||||
@@ -694,7 +694,7 @@ void AsmIntrinsifier::Bigint_sqrAdd(Assembler* assembler,
|
||||
// ESI = ajp = &a_digits[i]
|
||||
__ movl(ESI, Address(ESP, 3 * target::kWordSize)); // a_digits
|
||||
__ leal(ESI,
|
||||
FieldAddress(ESI, EAX, TIMES_4, target::TypedData::data_offset()));
|
||||
FieldAddress(ESI, EAX, TIMES_4, target::TypedData::payload_offset()));
|
||||
|
||||
// EDX:EAX = t = x*x + *ajp
|
||||
__ movl(EAX, EBX);
|
||||
@@ -803,14 +803,14 @@ void AsmIntrinsifier::Bigint_estimateQuotientDigit(Assembler* assembler,
|
||||
__ movl(EDI, Address(ESP, 3 * target::kWordSize)); // args
|
||||
|
||||
// ECX = yt = args[1]
|
||||
__ movl(ECX, FieldAddress(EDI, target::TypedData::data_offset() +
|
||||
__ movl(ECX, FieldAddress(EDI, target::TypedData::payload_offset() +
|
||||
kBytesPerBigIntDigit));
|
||||
|
||||
// EBX = dp = &digits[i >> 1]
|
||||
__ movl(EBX, Address(ESP, 2 * target::kWordSize)); // digits
|
||||
__ movl(EAX, Address(ESP, 1 * target::kWordSize)); // i is Smi
|
||||
__ leal(EBX,
|
||||
FieldAddress(EBX, EAX, TIMES_2, target::TypedData::data_offset()));
|
||||
FieldAddress(EBX, EAX, TIMES_2, target::TypedData::payload_offset()));
|
||||
|
||||
// EDX = dh = dp[0]
|
||||
__ movl(EDX, Address(EBX, 0));
|
||||
@@ -831,8 +831,8 @@ void AsmIntrinsifier::Bigint_estimateQuotientDigit(Assembler* assembler,
|
||||
|
||||
__ Bind(&return_qd);
|
||||
// args[2] = qd
|
||||
__ movl(FieldAddress(
|
||||
EDI, target::TypedData::data_offset() + 2 * kBytesPerBigIntDigit),
|
||||
__ movl(FieldAddress(EDI, target::TypedData::payload_offset() +
|
||||
2 * kBytesPerBigIntDigit),
|
||||
EAX);
|
||||
|
||||
__ movl(EAX, Immediate(target::ToRawSmi(1))); // One digit processed.
|
||||
@@ -854,21 +854,21 @@ void AsmIntrinsifier::Montgomery_mulMod(Assembler* assembler,
|
||||
__ movl(EDI, Address(ESP, 3 * target::kWordSize)); // args
|
||||
|
||||
// ECX = rho = args[2]
|
||||
__ movl(ECX, FieldAddress(EDI, target::TypedData::data_offset() +
|
||||
__ movl(ECX, FieldAddress(EDI, target::TypedData::payload_offset() +
|
||||
2 * kBytesPerBigIntDigit));
|
||||
|
||||
// EAX = digits[i >> 1]
|
||||
__ movl(EBX, Address(ESP, 2 * target::kWordSize)); // digits
|
||||
__ movl(EAX, Address(ESP, 1 * target::kWordSize)); // i is Smi
|
||||
__ movl(EAX,
|
||||
FieldAddress(EBX, EAX, TIMES_2, target::TypedData::data_offset()));
|
||||
FieldAddress(EBX, EAX, TIMES_2, target::TypedData::payload_offset()));
|
||||
|
||||
// EDX:EAX = t = rho*d
|
||||
__ mull(ECX);
|
||||
|
||||
// args[4] = t mod DIGIT_BASE = low32(t)
|
||||
__ movl(FieldAddress(
|
||||
EDI, target::TypedData::data_offset() + 4 * kBytesPerBigIntDigit),
|
||||
__ movl(FieldAddress(EDI, target::TypedData::payload_offset() +
|
||||
4 * kBytesPerBigIntDigit),
|
||||
EAX);
|
||||
|
||||
__ movl(EAX, Immediate(target::ToRawSmi(1))); // One digit processed.
|
||||
|
||||
@@ -238,10 +238,10 @@ void AsmIntrinsifier::Bigint_lsh(Assembler* assembler, Label* normal_ir_body) {
|
||||
__ movq(RSI, RCX);
|
||||
__ sarq(RSI, Immediate(6)); // RSI = n ~/ (2*_DIGIT_BITS).
|
||||
__ leaq(RBX,
|
||||
FieldAddress(RBX, RSI, TIMES_8, target::TypedData::data_offset()));
|
||||
FieldAddress(RBX, RSI, TIMES_8, target::TypedData::payload_offset()));
|
||||
__ xorq(RAX, RAX); // RAX = 0.
|
||||
__ movq(RDX,
|
||||
FieldAddress(RDI, R8, TIMES_8, target::TypedData::data_offset()));
|
||||
FieldAddress(RDI, R8, TIMES_8, target::TypedData::payload_offset()));
|
||||
__ shldq(RAX, RDX, RCX);
|
||||
__ movq(Address(RBX, R8, TIMES_8, 2 * kBytesPerBigIntDigit), RAX);
|
||||
Label last;
|
||||
@@ -251,7 +251,7 @@ void AsmIntrinsifier::Bigint_lsh(Assembler* assembler, Label* normal_ir_body) {
|
||||
__ Bind(&loop);
|
||||
__ movq(RAX, RDX);
|
||||
__ movq(RDX, FieldAddress(RDI, R8, TIMES_8,
|
||||
target::TypedData::data_offset() -
|
||||
target::TypedData::payload_offset() -
|
||||
2 * kBytesPerBigIntDigit));
|
||||
__ shldq(RAX, RDX, RCX);
|
||||
__ movq(Address(RBX, R8, TIMES_8, 0), RAX);
|
||||
@@ -284,10 +284,10 @@ void AsmIntrinsifier::Bigint_rsh(Assembler* assembler, Label* normal_ir_body) {
|
||||
__ subq(RSI, Immediate(2)); // x_used > 0, Smi. RSI = x_used - 1, round up.
|
||||
__ sarq(RSI, Immediate(2));
|
||||
__ leaq(RDI,
|
||||
FieldAddress(RDI, RSI, TIMES_8, target::TypedData::data_offset()));
|
||||
FieldAddress(RDI, RSI, TIMES_8, target::TypedData::payload_offset()));
|
||||
__ subq(RSI, RDX); // RSI + 1 = number of digit pairs to read.
|
||||
__ leaq(RBX,
|
||||
FieldAddress(RBX, RSI, TIMES_8, target::TypedData::data_offset()));
|
||||
FieldAddress(RBX, RSI, TIMES_8, target::TypedData::payload_offset()));
|
||||
__ negq(RSI);
|
||||
__ movq(RDX, Address(RDI, RSI, TIMES_8, 0));
|
||||
Label last;
|
||||
@@ -339,10 +339,10 @@ void AsmIntrinsifier::Bigint_absAdd(Assembler* assembler,
|
||||
__ Bind(&add_loop);
|
||||
// Loop (a_used+1)/2 times, RCX > 0.
|
||||
__ movq(RAX,
|
||||
FieldAddress(RDI, RDX, TIMES_8, target::TypedData::data_offset()));
|
||||
FieldAddress(RDI, RDX, TIMES_8, target::TypedData::payload_offset()));
|
||||
__ adcq(RAX,
|
||||
FieldAddress(RSI, RDX, TIMES_8, target::TypedData::data_offset()));
|
||||
__ movq(FieldAddress(RBX, RDX, TIMES_8, target::TypedData::data_offset()),
|
||||
FieldAddress(RSI, RDX, TIMES_8, target::TypedData::payload_offset()));
|
||||
__ movq(FieldAddress(RBX, RDX, TIMES_8, target::TypedData::payload_offset()),
|
||||
RAX);
|
||||
__ incq(RDX); // Does not affect carry flag.
|
||||
__ decq(RCX); // Does not affect carry flag.
|
||||
@@ -356,9 +356,9 @@ void AsmIntrinsifier::Bigint_absAdd(Assembler* assembler,
|
||||
__ Bind(&carry_loop);
|
||||
// Loop (used+1)/2 - (a_used+1)/2 times, R8 > 0.
|
||||
__ movq(RAX,
|
||||
FieldAddress(RDI, RDX, TIMES_8, target::TypedData::data_offset()));
|
||||
FieldAddress(RDI, RDX, TIMES_8, target::TypedData::payload_offset()));
|
||||
__ adcq(RAX, Immediate(0));
|
||||
__ movq(FieldAddress(RBX, RDX, TIMES_8, target::TypedData::data_offset()),
|
||||
__ movq(FieldAddress(RBX, RDX, TIMES_8, target::TypedData::payload_offset()),
|
||||
RAX);
|
||||
__ incq(RDX); // Does not affect carry flag.
|
||||
__ decq(R8); // Does not affect carry flag.
|
||||
@@ -367,7 +367,7 @@ void AsmIntrinsifier::Bigint_absAdd(Assembler* assembler,
|
||||
__ Bind(&last_carry);
|
||||
Label done;
|
||||
__ j(NOT_CARRY, &done);
|
||||
__ movq(FieldAddress(RBX, RDX, TIMES_8, target::TypedData::data_offset()),
|
||||
__ movq(FieldAddress(RBX, RDX, TIMES_8, target::TypedData::payload_offset()),
|
||||
Immediate(1));
|
||||
|
||||
__ Bind(&done);
|
||||
@@ -406,10 +406,10 @@ void AsmIntrinsifier::Bigint_absSub(Assembler* assembler,
|
||||
__ Bind(&sub_loop);
|
||||
// Loop (a_used+1)/2 times, RCX > 0.
|
||||
__ movq(RAX,
|
||||
FieldAddress(RDI, RDX, TIMES_8, target::TypedData::data_offset()));
|
||||
FieldAddress(RDI, RDX, TIMES_8, target::TypedData::payload_offset()));
|
||||
__ sbbq(RAX,
|
||||
FieldAddress(RSI, RDX, TIMES_8, target::TypedData::data_offset()));
|
||||
__ movq(FieldAddress(RBX, RDX, TIMES_8, target::TypedData::data_offset()),
|
||||
FieldAddress(RSI, RDX, TIMES_8, target::TypedData::payload_offset()));
|
||||
__ movq(FieldAddress(RBX, RDX, TIMES_8, target::TypedData::payload_offset()),
|
||||
RAX);
|
||||
__ incq(RDX); // Does not affect carry flag.
|
||||
__ decq(RCX); // Does not affect carry flag.
|
||||
@@ -423,9 +423,9 @@ void AsmIntrinsifier::Bigint_absSub(Assembler* assembler,
|
||||
__ Bind(&carry_loop);
|
||||
// Loop (used+1)/2 - (a_used+1)/2 times, R8 > 0.
|
||||
__ movq(RAX,
|
||||
FieldAddress(RDI, RDX, TIMES_8, target::TypedData::data_offset()));
|
||||
FieldAddress(RDI, RDX, TIMES_8, target::TypedData::payload_offset()));
|
||||
__ sbbq(RAX, Immediate(0));
|
||||
__ movq(FieldAddress(RBX, RDX, TIMES_8, target::TypedData::data_offset()),
|
||||
__ movq(FieldAddress(RBX, RDX, TIMES_8, target::TypedData::payload_offset()),
|
||||
RAX);
|
||||
__ incq(RDX); // Does not affect carry flag.
|
||||
__ decq(R8); // Does not affect carry flag.
|
||||
@@ -474,7 +474,7 @@ void AsmIntrinsifier::Bigint_mulAdd(Assembler* assembler,
|
||||
__ movsxd(RAX, RAX);
|
||||
#endif
|
||||
__ movq(RBX,
|
||||
FieldAddress(RCX, RAX, TIMES_2, target::TypedData::data_offset()));
|
||||
FieldAddress(RCX, RAX, TIMES_2, target::TypedData::payload_offset()));
|
||||
__ testq(RBX, RBX);
|
||||
__ j(ZERO, &done, Assembler::kNearJump);
|
||||
|
||||
@@ -494,7 +494,7 @@ void AsmIntrinsifier::Bigint_mulAdd(Assembler* assembler,
|
||||
__ movsxd(RAX, RAX);
|
||||
#endif
|
||||
__ leaq(RDI,
|
||||
FieldAddress(RDI, RAX, TIMES_2, target::TypedData::data_offset()));
|
||||
FieldAddress(RDI, RAX, TIMES_2, target::TypedData::payload_offset()));
|
||||
|
||||
// RSI = ajp = &a_digits[j >> 1]
|
||||
__ movq(RSI, Address(RSP, 3 * target::kWordSize)); // a_digits
|
||||
@@ -503,7 +503,7 @@ void AsmIntrinsifier::Bigint_mulAdd(Assembler* assembler,
|
||||
__ movsxd(RAX, RAX);
|
||||
#endif
|
||||
__ leaq(RSI,
|
||||
FieldAddress(RSI, RAX, TIMES_2, target::TypedData::data_offset()));
|
||||
FieldAddress(RSI, RAX, TIMES_2, target::TypedData::payload_offset()));
|
||||
|
||||
// RCX = c = 0
|
||||
__ xorq(RCX, RCX);
|
||||
@@ -594,7 +594,7 @@ void AsmIntrinsifier::Bigint_sqrAdd(Assembler* assembler,
|
||||
__ movsxd(RAX, RAX);
|
||||
#endif
|
||||
__ leaq(RDI,
|
||||
FieldAddress(RDI, RAX, TIMES_2, target::TypedData::data_offset()));
|
||||
FieldAddress(RDI, RAX, TIMES_2, target::TypedData::payload_offset()));
|
||||
|
||||
// RBX = x = *xip++, return if x == 0
|
||||
Label x_zero;
|
||||
@@ -606,7 +606,7 @@ void AsmIntrinsifier::Bigint_sqrAdd(Assembler* assembler,
|
||||
// RSI = ajp = &a_digits[i]
|
||||
__ movq(RSI, Address(RSP, 2 * target::kWordSize)); // a_digits
|
||||
__ leaq(RSI,
|
||||
FieldAddress(RSI, RAX, TIMES_4, target::TypedData::data_offset()));
|
||||
FieldAddress(RSI, RAX, TIMES_4, target::TypedData::payload_offset()));
|
||||
|
||||
// RDX:RAX = t = x*x + *ajp
|
||||
__ movq(RAX, RBX);
|
||||
@@ -706,7 +706,7 @@ void AsmIntrinsifier::Bigint_estimateQuotientDigit(Assembler* assembler,
|
||||
__ movq(RDI, Address(RSP, 3 * target::kWordSize)); // args
|
||||
|
||||
// RCX = yt = args[0..1]
|
||||
__ movq(RCX, FieldAddress(RDI, target::TypedData::data_offset()));
|
||||
__ movq(RCX, FieldAddress(RDI, target::TypedData::payload_offset()));
|
||||
|
||||
// RBX = dp = &digits[(i >> 1) - 1]
|
||||
__ movq(RBX, Address(RSP, 2 * target::kWordSize)); // digits
|
||||
@@ -716,7 +716,7 @@ void AsmIntrinsifier::Bigint_estimateQuotientDigit(Assembler* assembler,
|
||||
#endif
|
||||
__ leaq(RBX, FieldAddress(
|
||||
RBX, RAX, TIMES_2,
|
||||
target::TypedData::data_offset() - kBytesPerBigIntDigit));
|
||||
target::TypedData::payload_offset() - kBytesPerBigIntDigit));
|
||||
|
||||
// RDX = dh = dp[0]
|
||||
__ movq(RDX, Address(RBX, 0));
|
||||
@@ -737,8 +737,8 @@ void AsmIntrinsifier::Bigint_estimateQuotientDigit(Assembler* assembler,
|
||||
|
||||
__ Bind(&return_qd);
|
||||
// args[2..3] = qd
|
||||
__ movq(FieldAddress(
|
||||
RDI, target::TypedData::data_offset() + 2 * kBytesPerBigIntDigit),
|
||||
__ movq(FieldAddress(RDI, target::TypedData::payload_offset() +
|
||||
2 * kBytesPerBigIntDigit),
|
||||
RAX);
|
||||
|
||||
__ movq(RAX, Immediate(target::ToRawSmi(2))); // Two digits processed.
|
||||
@@ -760,7 +760,7 @@ void AsmIntrinsifier::Montgomery_mulMod(Assembler* assembler,
|
||||
__ movq(RDI, Address(RSP, 3 * target::kWordSize)); // args
|
||||
|
||||
// RCX = rho = args[2 .. 3]
|
||||
__ movq(RCX, FieldAddress(RDI, target::TypedData::data_offset() +
|
||||
__ movq(RCX, FieldAddress(RDI, target::TypedData::payload_offset() +
|
||||
2 * kBytesPerBigIntDigit));
|
||||
|
||||
// RAX = digits[i >> 1 .. (i >> 1) + 1]
|
||||
@@ -770,14 +770,14 @@ void AsmIntrinsifier::Montgomery_mulMod(Assembler* assembler,
|
||||
__ movsxd(RAX, RAX);
|
||||
#endif
|
||||
__ movq(RAX,
|
||||
FieldAddress(RBX, RAX, TIMES_2, target::TypedData::data_offset()));
|
||||
FieldAddress(RBX, RAX, TIMES_2, target::TypedData::payload_offset()));
|
||||
|
||||
// RDX:RAX = t = rho*d
|
||||
__ mulq(RCX);
|
||||
|
||||
// args[4 .. 5] = t mod DIGIT_BASE^2 = low64(t)
|
||||
__ movq(FieldAddress(
|
||||
RDI, target::TypedData::data_offset() + 4 * kBytesPerBigIntDigit),
|
||||
__ movq(FieldAddress(RDI, target::TypedData::payload_offset() +
|
||||
4 * kBytesPerBigIntDigit),
|
||||
RAX);
|
||||
|
||||
__ movq(RAX, Immediate(target::ToRawSmi(2))); // Two digits processed.
|
||||
|
||||
@@ -2753,7 +2753,7 @@ Definition* LoadFieldInstr::Canonicalize(FlowGraph* flow_graph) {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (slot().kind() == Slot::Kind::kTypedDataView_data) {
|
||||
} else if (slot().kind() == Slot::Kind::kTypedDataView_typed_data) {
|
||||
// This case cover the first explicit argument to typed data view
|
||||
// factories, the data (buffer).
|
||||
ASSERT(!calls_initializer());
|
||||
@@ -6529,10 +6529,9 @@ void FfiCallInstr::EmitParamMoves(FlowGraphCompiler* compiler,
|
||||
zone_, pointer_loc.payload_type(), pointer_loc.container_type(),
|
||||
temp);
|
||||
compiler->EmitNativeMove(dst, pointer_loc, &temp_alloc);
|
||||
__ LoadField(
|
||||
temp,
|
||||
compiler::FieldAddress(
|
||||
temp, compiler::target::TypedDataBase::data_field_offset()));
|
||||
__ LoadField(temp,
|
||||
compiler::FieldAddress(
|
||||
temp, compiler::target::PointerBase::data_offset()));
|
||||
|
||||
// Copy chuncks.
|
||||
const intptr_t sp_offset =
|
||||
@@ -6594,10 +6593,9 @@ void FfiCallInstr::EmitReturnMoves(FlowGraphCompiler* compiler,
|
||||
__ LoadMemoryValue(temp0, FPREG, 0);
|
||||
__ LoadMemoryValue(temp0, temp0, typed_data_loc.ToStackSlotOffset());
|
||||
}
|
||||
__ LoadField(
|
||||
temp0,
|
||||
compiler::FieldAddress(
|
||||
temp0, compiler::target::TypedDataBase::data_field_offset()));
|
||||
__ LoadField(temp0,
|
||||
compiler::FieldAddress(
|
||||
temp0, compiler::target::PointerBase::data_offset()));
|
||||
|
||||
if (returnLocation.IsPointerToMemory()) {
|
||||
// Copy blocks from the stack location to TypedData.
|
||||
@@ -6774,10 +6772,10 @@ void NativeReturnInstr::EmitReturnMoves(FlowGraphCompiler* compiler) {
|
||||
if (dst1.IsMultiple()) {
|
||||
Register typed_data_reg = locs()->in(0).reg();
|
||||
// Load the data pointer out of the TypedData/Pointer.
|
||||
__ LoadField(typed_data_reg,
|
||||
compiler::FieldAddress(
|
||||
typed_data_reg,
|
||||
compiler::target::TypedDataBase::data_field_offset()));
|
||||
__ LoadField(
|
||||
typed_data_reg,
|
||||
compiler::FieldAddress(typed_data_reg,
|
||||
compiler::target::PointerBase::data_offset()));
|
||||
|
||||
const auto& multiple = dst1.AsMultiple();
|
||||
int offset_in_bytes = 0;
|
||||
|
||||
@@ -232,10 +232,9 @@ void MemoryCopyInstr::EmitComputeStartPointer(FlowGraphCompiler* compiler,
|
||||
Register array_reg,
|
||||
Register start_reg) {
|
||||
if (IsTypedDataBaseClassId(array_cid)) {
|
||||
__ ldr(
|
||||
array_reg,
|
||||
compiler::FieldAddress(
|
||||
array_reg, compiler::target::TypedDataBase::data_field_offset()));
|
||||
__ ldr(array_reg,
|
||||
compiler::FieldAddress(
|
||||
array_reg, compiler::target::PointerBase::data_offset()));
|
||||
} else {
|
||||
switch (array_cid) {
|
||||
case kOneByteStringCid:
|
||||
@@ -1780,7 +1779,7 @@ void Utf8ScanInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
||||
|
||||
// Address of input bytes.
|
||||
__ LoadFieldFromOffset(bytes_reg, bytes_reg,
|
||||
compiler::target::TypedDataBase::data_field_offset());
|
||||
compiler::target::PointerBase::data_offset());
|
||||
|
||||
// Table.
|
||||
__ AddImmediate(
|
||||
|
||||
@@ -232,10 +232,9 @@ void MemoryCopyInstr::EmitComputeStartPointer(FlowGraphCompiler* compiler,
|
||||
Register array_reg,
|
||||
Register start_reg) {
|
||||
if (IsTypedDataBaseClassId(array_cid)) {
|
||||
__ ldr(
|
||||
array_reg,
|
||||
compiler::FieldAddress(
|
||||
array_reg, compiler::target::TypedDataBase::data_field_offset()));
|
||||
__ ldr(array_reg,
|
||||
compiler::FieldAddress(
|
||||
array_reg, compiler::target::PointerBase::data_offset()));
|
||||
} else {
|
||||
switch (array_cid) {
|
||||
case kOneByteStringCid:
|
||||
@@ -1627,7 +1626,7 @@ void Utf8ScanInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
||||
|
||||
// Address of input bytes.
|
||||
__ LoadFieldFromOffset(bytes_reg, bytes_reg,
|
||||
compiler::target::TypedDataBase::data_field_offset());
|
||||
compiler::target::PointerBase::data_offset());
|
||||
|
||||
// Table.
|
||||
__ AddImmediate(
|
||||
|
||||
@@ -131,10 +131,9 @@ void MemoryCopyInstr::EmitComputeStartPointer(FlowGraphCompiler* compiler,
|
||||
Register start_reg) {
|
||||
intptr_t offset;
|
||||
if (IsTypedDataBaseClassId(array_cid)) {
|
||||
__ movl(
|
||||
array_reg,
|
||||
compiler::FieldAddress(
|
||||
array_reg, compiler::target::TypedDataBase::data_field_offset()));
|
||||
__ movl(array_reg,
|
||||
compiler::FieldAddress(
|
||||
array_reg, compiler::target::PointerBase::data_offset()));
|
||||
offset = 0;
|
||||
} else {
|
||||
switch (array_cid) {
|
||||
@@ -1328,8 +1327,8 @@ void Utf8ScanInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
||||
|
||||
// Address of input bytes.
|
||||
__ movl(bytes_reg,
|
||||
compiler::FieldAddress(
|
||||
bytes_reg, compiler::target::TypedDataBase::data_field_offset()));
|
||||
compiler::FieldAddress(bytes_reg,
|
||||
compiler::target::PointerBase::data_offset()));
|
||||
|
||||
// Pointers to start, end and end-16.
|
||||
__ leal(bytes_ptr_reg, compiler::Address(bytes_reg, start_reg, TIMES_1, 0));
|
||||
|
||||
@@ -274,8 +274,8 @@ void MemoryCopyInstr::EmitComputeStartPointer(FlowGraphCompiler* compiler,
|
||||
Register start_reg) {
|
||||
if (IsTypedDataBaseClassId(array_cid)) {
|
||||
__ lx(array_reg,
|
||||
compiler::FieldAddress(
|
||||
array_reg, compiler::target::TypedDataBase::data_field_offset()));
|
||||
compiler::FieldAddress(array_reg,
|
||||
compiler::target::PointerBase::data_offset()));
|
||||
} else {
|
||||
switch (array_cid) {
|
||||
case kOneByteStringCid:
|
||||
@@ -1771,7 +1771,7 @@ void Utf8ScanInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
||||
|
||||
// Address of input bytes.
|
||||
__ LoadFieldFromOffset(bytes_reg, bytes_reg,
|
||||
compiler::target::TypedDataBase::data_field_offset());
|
||||
compiler::target::PointerBase::data_offset());
|
||||
|
||||
// Table.
|
||||
__ AddImmediate(
|
||||
|
||||
@@ -196,10 +196,9 @@ void MemoryCopyInstr::EmitComputeStartPointer(FlowGraphCompiler* compiler,
|
||||
Register start_reg) {
|
||||
intptr_t offset;
|
||||
if (IsTypedDataBaseClassId(array_cid)) {
|
||||
__ movq(
|
||||
array_reg,
|
||||
compiler::FieldAddress(
|
||||
array_reg, compiler::target::TypedDataBase::data_field_offset()));
|
||||
__ movq(array_reg,
|
||||
compiler::FieldAddress(
|
||||
array_reg, compiler::target::PointerBase::data_offset()));
|
||||
offset = 0;
|
||||
} else {
|
||||
switch (array_cid) {
|
||||
@@ -1534,8 +1533,8 @@ void Utf8ScanInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
||||
|
||||
// Address of input bytes.
|
||||
__ movq(bytes_reg,
|
||||
compiler::FieldAddress(
|
||||
bytes_reg, compiler::target::TypedDataBase::data_field_offset()));
|
||||
compiler::FieldAddress(bytes_reg,
|
||||
compiler::target::PointerBase::data_offset()));
|
||||
|
||||
// Pointers to start, end and end-16.
|
||||
__ leaq(bytes_ptr_reg, compiler::Address(bytes_reg, start_reg, TIMES_1, 0));
|
||||
|
||||
@@ -2601,9 +2601,8 @@ static intptr_t PrepareInlineIndexedOp(FlowGraph* flow_graph,
|
||||
*array = elements;
|
||||
array_cid = kArrayCid;
|
||||
} else if (IsExternalTypedDataClassId(array_cid)) {
|
||||
LoadUntaggedInstr* elements = new (Z)
|
||||
LoadUntaggedInstr(new (Z) Value(*array),
|
||||
compiler::target::TypedDataBase::data_field_offset());
|
||||
LoadUntaggedInstr* elements = new (Z) LoadUntaggedInstr(
|
||||
new (Z) Value(*array), compiler::target::PointerBase::data_offset());
|
||||
*cursor = flow_graph->AppendTo(*cursor, elements, NULL, FlowGraph::kValue);
|
||||
*array = elements;
|
||||
}
|
||||
@@ -2998,9 +2997,8 @@ static void PrepareInlineByteArrayBaseOp(FlowGraph* flow_graph,
|
||||
Instruction** cursor) {
|
||||
if (array_cid == kDynamicCid || IsExternalTypedDataClassId(array_cid)) {
|
||||
// Internal or External typed data: load untagged.
|
||||
auto elements = new (Z)
|
||||
LoadUntaggedInstr(new (Z) Value(*array),
|
||||
compiler::target::TypedDataBase::data_field_offset());
|
||||
auto elements = new (Z) LoadUntaggedInstr(
|
||||
new (Z) Value(*array), compiler::target::PointerBase::data_offset());
|
||||
*cursor = flow_graph->AppendTo(*cursor, elements, NULL, FlowGraph::kValue);
|
||||
*array = elements;
|
||||
} else {
|
||||
|
||||
@@ -2803,8 +2803,7 @@ void LoadFieldInstr::InferRange(RangeAnalysis* analysis, Range* range) {
|
||||
case Slot::Kind::kFunctionType_parameter_types:
|
||||
case Slot::Kind::kFunctionType_type_parameters:
|
||||
case Slot::Kind::kInstance_native_fields_array:
|
||||
case Slot::Kind::kPointerBase_data_field:
|
||||
case Slot::Kind::kTypedDataView_data:
|
||||
case Slot::Kind::kTypedDataView_typed_data:
|
||||
case Slot::Kind::kType_arguments:
|
||||
case Slot::Kind::kTypeArgumentsIndex:
|
||||
case Slot::Kind::kTypeParameters_names:
|
||||
|
||||
@@ -215,7 +215,7 @@ bool Slot::IsImmutableLengthSlot() const {
|
||||
case Slot::Kind::kInstance_native_fields_array:
|
||||
case Slot::Kind::kTypeArguments:
|
||||
case Slot::Kind::kTypedDataView_offset_in_bytes:
|
||||
case Slot::Kind::kTypedDataView_data:
|
||||
case Slot::Kind::kTypedDataView_typed_data:
|
||||
case Slot::Kind::kGrowableObjectArray_data:
|
||||
case Slot::Kind::kArray_type_arguments:
|
||||
case Slot::Kind::kContext_parent:
|
||||
@@ -232,7 +232,6 @@ bool Slot::IsImmutableLengthSlot() const {
|
||||
case Slot::Kind::kFunctionType_named_parameter_names:
|
||||
case Slot::Kind::kFunctionType_parameter_types:
|
||||
case Slot::Kind::kFunctionType_type_parameters:
|
||||
case Slot::Kind::kPointerBase_data_field:
|
||||
case Slot::Kind::kType_arguments:
|
||||
case Slot::Kind::kTypeArgumentsIndex:
|
||||
case Slot::Kind::kTypeParameters_names:
|
||||
|
||||
@@ -96,7 +96,7 @@ class ParsedFunction;
|
||||
V(GrowableObjectArray, UntaggedGrowableObjectArray, data, Array, VAR) \
|
||||
V(TypedDataBase, UntaggedTypedDataBase, length, Smi, FINAL) \
|
||||
V(TypedDataView, UntaggedTypedDataView, offset_in_bytes, Smi, FINAL) \
|
||||
V(TypedDataView, UntaggedTypedDataView, data, Dynamic, FINAL) \
|
||||
V(TypedDataView, UntaggedTypedDataView, typed_data, Dynamic, FINAL) \
|
||||
V(String, UntaggedString, length, Smi, FINAL) \
|
||||
V(LinkedHashBase, UntaggedLinkedHashBase, index, TypedDataUint32Array, VAR) \
|
||||
V(LinkedHashBase, UntaggedLinkedHashBase, data, Array, VAR) \
|
||||
@@ -109,7 +109,6 @@ class ParsedFunction;
|
||||
V(ArgumentsDescriptor, UntaggedArray, positional_count, Smi, FINAL) \
|
||||
V(ArgumentsDescriptor, UntaggedArray, count, Smi, FINAL) \
|
||||
V(ArgumentsDescriptor, UntaggedArray, size, Smi, FINAL) \
|
||||
V(PointerBase, UntaggedPointerBase, data_field, Dynamic, FINAL) \
|
||||
V(TypeArguments, UntaggedTypeArguments, length, Smi, FINAL) \
|
||||
V(TypeParameters, UntaggedTypeParameters, names, Array, FINAL) \
|
||||
V(TypeParameter, UntaggedTypeParameter, bound, Dynamic, FINAL) \
|
||||
@@ -154,8 +153,7 @@ class ParsedFunction;
|
||||
FINAL) \
|
||||
V(FunctionType, UntaggedFunctionType, packed_type_parameter_counts, Uint16, \
|
||||
FINAL) \
|
||||
V(Pointer, UntaggedPointer, data_field, FfiIntPtr, FINAL) \
|
||||
V(TypedDataBase, UntaggedTypedDataBase, data_field, IntPtr, VAR) \
|
||||
V(PointerBase, UntaggedPointerBase, data, IntPtr, VAR) \
|
||||
V(TypeParameter, UntaggedTypeParameter, flags, Uint8, FINAL)
|
||||
|
||||
// For uses that do not need the exact_type (boxed) or representation (unboxed)
|
||||
|
||||
@@ -1676,9 +1676,8 @@ Definition* TypedDataSpecializer::AppendLoadIndexed(TemplateDartCall<0>* call,
|
||||
const intptr_t element_size = TypedDataBase::ElementSizeFor(cid);
|
||||
const intptr_t index_scale = element_size;
|
||||
|
||||
auto data = new (Z)
|
||||
LoadUntaggedInstr(new (Z) Value(array),
|
||||
compiler::target::TypedDataBase::data_field_offset());
|
||||
auto data = new (Z) LoadUntaggedInstr(
|
||||
new (Z) Value(array), compiler::target::PointerBase::data_offset());
|
||||
flow_graph_->InsertBefore(call, data, call->env(), FlowGraph::kValue);
|
||||
|
||||
Definition* load = new (Z) LoadIndexedInstr(
|
||||
@@ -1754,9 +1753,8 @@ void TypedDataSpecializer::AppendStoreIndexed(TemplateDartCall<0>* call,
|
||||
break;
|
||||
}
|
||||
|
||||
auto data = new (Z)
|
||||
LoadUntaggedInstr(new (Z) Value(array),
|
||||
compiler::target::TypedDataBase::data_field_offset());
|
||||
auto data = new (Z) LoadUntaggedInstr(
|
||||
new (Z) Value(array), compiler::target::PointerBase::data_offset());
|
||||
flow_graph_->InsertBefore(call, data, call->env(), FlowGraph::kValue);
|
||||
|
||||
auto store = new (Z) StoreIndexedInstr(
|
||||
|
||||
@@ -1115,7 +1115,7 @@ FlowGraph* FlowGraphBuilder::BuildGraphOfRecognizedMethod(
|
||||
case MethodRecognizer::kTypedDataViewTypedData:
|
||||
ASSERT_EQUAL(function.NumParameters(), 1);
|
||||
body += LoadLocal(parsed_function_->RawParameterVariable(0));
|
||||
body += LoadNativeField(Slot::TypedDataView_data());
|
||||
body += LoadNativeField(Slot::TypedDataView_typed_data());
|
||||
break;
|
||||
case MethodRecognizer::kClassIDgetID:
|
||||
ASSERT_EQUAL(function.NumParameters(), 1);
|
||||
@@ -1374,7 +1374,7 @@ FlowGraph* FlowGraphBuilder::BuildGraphOfRecognizedMethod(
|
||||
body += LoadLocal(arg_pointer);
|
||||
body += CheckNullOptimized(String::ZoneHandle(Z, function.name()));
|
||||
// No GC from here til LoadIndexed.
|
||||
body += LoadUntagged(compiler::target::PointerBase::data_field_offset());
|
||||
body += LoadUntagged(compiler::target::PointerBase::data_offset());
|
||||
body += LoadLocal(arg_offset_not_null);
|
||||
body += UnboxTruncate(kUnboxedFfiIntPtr);
|
||||
body += LoadIndexed(typed_data_cid, /*index_scale=*/1,
|
||||
@@ -1415,8 +1415,8 @@ FlowGraph* FlowGraphBuilder::BuildGraphOfRecognizedMethod(
|
||||
LocalVariable* pointer = MakeTemporary();
|
||||
body += LoadLocal(pointer);
|
||||
body += LoadLocal(address);
|
||||
body += UnboxTruncate(kUnboxedFfiIntPtr);
|
||||
body += StoreNativeField(Slot::Pointer_data_field());
|
||||
body += UnboxTruncate(kUnboxedIntPtr);
|
||||
body += StoreNativeField(Slot::PointerBase_data());
|
||||
body += DropTempsPreserveTop(1); // Drop [address] keep [pointer].
|
||||
}
|
||||
body += DropTempsPreserveTop(1); // Drop [arg_offset].
|
||||
@@ -1487,13 +1487,13 @@ FlowGraph* FlowGraphBuilder::BuildGraphOfRecognizedMethod(
|
||||
body += LoadLocal(arg_pointer); // Pointer.
|
||||
body += CheckNullOptimized(String::ZoneHandle(Z, function.name()));
|
||||
// No GC from here til StoreIndexed.
|
||||
body += LoadUntagged(compiler::target::PointerBase::data_field_offset());
|
||||
body += LoadUntagged(compiler::target::PointerBase::data_offset());
|
||||
body += LoadLocal(arg_offset_not_null);
|
||||
body += UnboxTruncate(kUnboxedFfiIntPtr);
|
||||
body += LoadLocal(arg_value_not_null);
|
||||
if (kind == MethodRecognizer::kFfiStorePointer) {
|
||||
// This can only be Pointer, so it is always safe to LoadUntagged.
|
||||
body += LoadUntagged(compiler::target::Pointer::data_field_offset());
|
||||
body += LoadUntagged(compiler::target::PointerBase::data_offset());
|
||||
body += ConvertUntaggedToUnboxed(kUnboxedFfiIntPtr);
|
||||
} else {
|
||||
// Avoid any unnecessary (and potentially deoptimizing) int
|
||||
@@ -1524,15 +1524,15 @@ FlowGraph* FlowGraphBuilder::BuildGraphOfRecognizedMethod(
|
||||
body += LoadLocal(MakeTemporary()); // Duplicate Pointer.
|
||||
body += LoadLocal(parsed_function_->RawParameterVariable(0)); // Address.
|
||||
body += CheckNullOptimized(String::ZoneHandle(Z, function.name()));
|
||||
body += UnboxTruncate(kUnboxedFfiIntPtr);
|
||||
body += StoreNativeField(Slot::Pointer_data_field());
|
||||
body += UnboxTruncate(kUnboxedIntPtr);
|
||||
body += StoreNativeField(Slot::PointerBase_data());
|
||||
} break;
|
||||
case MethodRecognizer::kFfiGetAddress: {
|
||||
ASSERT_EQUAL(function.NumParameters(), 1);
|
||||
body += LoadLocal(parsed_function_->RawParameterVariable(0)); // Pointer.
|
||||
body += CheckNullOptimized(String::ZoneHandle(Z, function.name()));
|
||||
// This can only be Pointer, so it is always safe to LoadUntagged.
|
||||
body += LoadUntagged(compiler::target::Pointer::data_field_offset());
|
||||
body += LoadUntagged(compiler::target::PointerBase::data_offset());
|
||||
body += ConvertUntaggedToUnboxed(kUnboxedFfiIntPtr);
|
||||
body += Box(kUnboxedFfiIntPtr);
|
||||
} break;
|
||||
@@ -1582,9 +1582,9 @@ FlowGraph* FlowGraphBuilder::BuildGraphOfRecognizedMethod(
|
||||
// Initialize the result's data pointer field.
|
||||
body += LoadLocal(typed_data_object);
|
||||
body += LoadLocal(arg_pointer);
|
||||
body += LoadUntagged(compiler::target::Pointer::data_field_offset());
|
||||
body += LoadUntagged(compiler::target::PointerBase::data_offset());
|
||||
body += ConvertUntaggedToUnboxed(kUnboxedIntPtr);
|
||||
body += StoreNativeField(Slot::TypedDataBase_data_field(),
|
||||
body += StoreNativeField(Slot::PointerBase_data(),
|
||||
StoreInstanceFieldInstr::Kind::kInitializing,
|
||||
kNoStoreBarrier);
|
||||
} break;
|
||||
@@ -1673,7 +1673,7 @@ Fragment FlowGraphBuilder::BuildTypedDataViewFactoryConstructor(
|
||||
|
||||
body += LoadLocal(view_object);
|
||||
body += LoadLocal(typed_data);
|
||||
body += StoreNativeField(token_pos, Slot::TypedDataView_data(),
|
||||
body += StoreNativeField(token_pos, Slot::TypedDataView_typed_data(),
|
||||
StoreInstanceFieldInstr::Kind::kInitializing);
|
||||
|
||||
body += LoadLocal(view_object);
|
||||
@@ -1694,12 +1694,12 @@ Fragment FlowGraphBuilder::BuildTypedDataViewFactoryConstructor(
|
||||
// instructions!
|
||||
body += LoadLocal(view_object);
|
||||
body += LoadLocal(typed_data);
|
||||
body += LoadUntagged(compiler::target::TypedDataBase::data_field_offset());
|
||||
body += LoadUntagged(compiler::target::PointerBase::data_offset());
|
||||
body += ConvertUntaggedToUnboxed(kUnboxedIntPtr);
|
||||
body += LoadLocal(offset_in_bytes);
|
||||
body += UnboxSmiToIntptr();
|
||||
body += AddIntptrIntegers();
|
||||
body += StoreNativeField(Slot::TypedDataBase_data_field());
|
||||
body += StoreNativeField(Slot::PointerBase_data());
|
||||
|
||||
return body;
|
||||
}
|
||||
@@ -4082,8 +4082,8 @@ Fragment FlowGraphBuilder::FfiPointerFromAddress(const Type& result_type) {
|
||||
LocalVariable* pointer = MakeTemporary();
|
||||
code += LoadLocal(pointer);
|
||||
code += LoadLocal(address);
|
||||
code += UnboxTruncate(kUnboxedFfiIntPtr);
|
||||
code += StoreNativeField(Slot::Pointer_data_field());
|
||||
code += UnboxTruncate(kUnboxedIntPtr);
|
||||
code += StoreNativeField(Slot::PointerBase_data());
|
||||
code += StoreLocal(TokenPosition::kNoSource, result);
|
||||
code += Drop(); // StoreLocal^
|
||||
code += Drop(); // address
|
||||
@@ -4145,7 +4145,7 @@ Fragment FlowGraphBuilder::CopyFromCompoundToStack(
|
||||
for (intptr_t i = 0; i < num_defs; i++) {
|
||||
body += LoadLocal(variable);
|
||||
body += LoadTypedDataBaseFromCompound();
|
||||
body += LoadUntagged(compiler::target::Pointer::data_field_offset());
|
||||
body += LoadUntagged(compiler::target::PointerBase::data_offset());
|
||||
body += IntConstant(offset_in_bytes);
|
||||
const Representation representation = representations[i];
|
||||
offset_in_bytes += RepresentationUtils::ValueSize(representation);
|
||||
@@ -4167,7 +4167,7 @@ Fragment FlowGraphBuilder::PopFromStackToTypedDataBase(
|
||||
for (intptr_t i = 0; i < num_defs; i++) {
|
||||
const Representation representation = representations[i];
|
||||
body += LoadLocal(uint8_list);
|
||||
body += LoadUntagged(compiler::target::TypedDataBase::data_field_offset());
|
||||
body += LoadUntagged(compiler::target::PointerBase::data_offset());
|
||||
body += IntConstant(offset_in_bytes);
|
||||
body += LoadLocal(definitions->At(i));
|
||||
body += StoreIndexedTypedDataUnboxed(representation, /*index_scale=*/1,
|
||||
@@ -4221,7 +4221,7 @@ Fragment FlowGraphBuilder::CopyFromTypedDataBaseToUnboxedAddress(
|
||||
const classid_t typed_data_cidd = typed_data_cid(chunk_sizee);
|
||||
|
||||
body += LoadLocal(typed_data_base);
|
||||
body += LoadUntagged(compiler::target::TypedDataBase::data_field_offset());
|
||||
body += LoadUntagged(compiler::target::PointerBase::data_offset());
|
||||
body += IntConstant(offset_in_bytes);
|
||||
body += LoadIndexed(typed_data_cidd, /*index_scale=*/1,
|
||||
/*index_unboxed=*/false);
|
||||
@@ -4266,7 +4266,7 @@ Fragment FlowGraphBuilder::CopyFromUnboxedAddressToTypedDataBase(
|
||||
LocalVariable* chunk_value = MakeTemporary("chunk_value");
|
||||
|
||||
body += LoadLocal(typed_data_base);
|
||||
body += LoadUntagged(compiler::target::TypedDataBase::data_field_offset());
|
||||
body += LoadUntagged(compiler::target::PointerBase::data_offset());
|
||||
body += IntConstant(offset_in_bytes);
|
||||
body += LoadLocal(chunk_value);
|
||||
body += StoreIndexedTypedData(typed_data_cidd, /*index_scale=*/1,
|
||||
@@ -4425,7 +4425,7 @@ Fragment FlowGraphBuilder::FfiConvertPrimitiveToNative(
|
||||
Fragment body;
|
||||
if (marshaller.IsPointer(arg_index)) {
|
||||
// This can only be Pointer, so it is always safe to LoadUntagged.
|
||||
body += LoadUntagged(compiler::target::Pointer::data_field_offset());
|
||||
body += LoadUntagged(compiler::target::PointerBase::data_offset());
|
||||
body += ConvertUntaggedToUnboxed(kUnboxedFfiIntPtr);
|
||||
} else if (marshaller.IsHandle(arg_index)) {
|
||||
body += WrapHandle(api_local_scope);
|
||||
@@ -4557,7 +4557,7 @@ FlowGraph* FlowGraphBuilder::BuildGraphOfFfiNative(const Function& function) {
|
||||
->context_variables()[0]));
|
||||
|
||||
// This can only be Pointer, so it is always safe to LoadUntagged.
|
||||
body += LoadUntagged(compiler::target::Pointer::data_field_offset());
|
||||
body += LoadUntagged(compiler::target::PointerBase::data_offset());
|
||||
body += ConvertUntaggedToUnboxed(kUnboxedFfiIntPtr);
|
||||
|
||||
if (marshaller.PassTypedData()) {
|
||||
|
||||
@@ -236,7 +236,7 @@ static bool IntrinsifyArrayGetIndexed(FlowGraph* flow_graph,
|
||||
|
||||
if (IsExternalTypedDataClassId(array_cid)) {
|
||||
array = builder.AddDefinition(new LoadUntaggedInstr(
|
||||
new Value(array), target::TypedDataBase::data_field_offset()));
|
||||
new Value(array), target::PointerBase::data_offset()));
|
||||
}
|
||||
|
||||
Definition* result = builder.AddDefinition(new LoadIndexedInstr(
|
||||
@@ -420,7 +420,7 @@ static bool IntrinsifyArraySetIndexed(FlowGraph* flow_graph,
|
||||
|
||||
if (IsExternalTypedDataClassId(array_cid)) {
|
||||
array = builder.AddDefinition(new LoadUntaggedInstr(
|
||||
new Value(array), target::TypedDataBase::data_field_offset()));
|
||||
new Value(array), target::PointerBase::data_offset()));
|
||||
}
|
||||
// No store barrier.
|
||||
ASSERT(IsExternalTypedDataClassId(array_cid) ||
|
||||
|
||||
@@ -509,7 +509,7 @@ word Instance::DataOffsetFor(intptr_t cid) {
|
||||
return 0;
|
||||
}
|
||||
if (dart::IsTypedDataClassId(cid)) {
|
||||
return TypedData::data_offset();
|
||||
return TypedData::payload_offset();
|
||||
}
|
||||
switch (cid) {
|
||||
case kArrayCid:
|
||||
|
||||
@@ -615,10 +615,10 @@ class GrowableObjectArray : public AllStatic {
|
||||
|
||||
class PointerBase : public AllStatic {
|
||||
public:
|
||||
static word data_field_offset();
|
||||
static word data_offset();
|
||||
};
|
||||
|
||||
class TypedDataBase : public PointerBase {
|
||||
class TypedDataBase : public AllStatic {
|
||||
public:
|
||||
static word length_offset();
|
||||
static word InstanceSize();
|
||||
@@ -627,7 +627,7 @@ class TypedDataBase : public PointerBase {
|
||||
|
||||
class TypedData : public AllStatic {
|
||||
public:
|
||||
static word data_offset();
|
||||
static word payload_offset();
|
||||
static word HeaderSize();
|
||||
static word InstanceSize();
|
||||
static word InstanceSize(word lengthInBytes);
|
||||
@@ -636,7 +636,6 @@ class TypedData : public AllStatic {
|
||||
|
||||
class ExternalTypedData : public AllStatic {
|
||||
public:
|
||||
static word data_offset();
|
||||
static word InstanceSize();
|
||||
FINAL_CLASS();
|
||||
};
|
||||
@@ -644,7 +643,7 @@ class ExternalTypedData : public AllStatic {
|
||||
class TypedDataView : public AllStatic {
|
||||
public:
|
||||
static word offset_in_bytes_offset();
|
||||
static word data_offset();
|
||||
static word typed_data_offset();
|
||||
static word InstanceSize();
|
||||
FINAL_CLASS();
|
||||
};
|
||||
@@ -700,7 +699,7 @@ class LocalHandle : public AllStatic {
|
||||
static word ptr_offset();
|
||||
};
|
||||
|
||||
class Pointer : public PointerBase {
|
||||
class Pointer : public AllStatic {
|
||||
public:
|
||||
static word type_arguments_offset();
|
||||
static word InstanceSize();
|
||||
|
||||
@@ -226,7 +226,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
104;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 4;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
SingleTargetCache_entry_point_offset = 8;
|
||||
@@ -469,10 +469,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
12;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 12;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 4;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -792,7 +793,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -1041,10 +1042,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 32;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -1363,7 +1365,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
104;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 4;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
SingleTargetCache_entry_point_offset = 8;
|
||||
@@ -1606,10 +1608,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
12;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 12;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 4;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -1926,7 +1929,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -2175,10 +2178,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 32;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -2498,7 +2502,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -2747,10 +2751,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 28;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 36;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 20;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 28;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -3069,7 +3074,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -3318,10 +3323,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 28;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 36;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 20;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 28;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -3641,7 +3647,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
104;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 4;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
SingleTargetCache_entry_point_offset = 8;
|
||||
@@ -3884,10 +3890,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
12;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 12;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 4;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -4209,7 +4216,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -4458,10 +4465,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 32;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -4777,7 +4785,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
104;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 4;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
SingleTargetCache_entry_point_offset = 8;
|
||||
@@ -5020,10 +5028,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
12;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 12;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 4;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -5337,7 +5346,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -5586,10 +5595,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 32;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -5902,7 +5912,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
104;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 4;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
SingleTargetCache_entry_point_offset = 8;
|
||||
@@ -6145,10 +6155,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
12;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 12;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 4;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -6459,7 +6470,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -6708,10 +6719,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 32;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -7025,7 +7037,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -7274,10 +7286,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 28;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 36;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 20;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 28;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -7590,7 +7603,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -7839,10 +7852,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 28;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 36;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 20;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 28;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -8156,7 +8170,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
104;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 4;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 4;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
SingleTargetCache_entry_point_offset = 8;
|
||||
@@ -8399,10 +8413,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 8;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
12;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 12;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 4;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -8718,7 +8733,7 @@ static constexpr dart::compiler::target::word ObjectStore_string_type_offset =
|
||||
static constexpr dart::compiler::target::word ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word OneByteString_data_offset = 16;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word Pointer_type_arguments_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -8967,10 +8982,11 @@ static constexpr dart::compiler::target::word TypeParameter_bound_offset = 32;
|
||||
static constexpr dart::compiler::target::word TypeParameter_flags_offset = 44;
|
||||
static constexpr dart::compiler::target::word TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataBase_length_offset = 16;
|
||||
static constexpr dart::compiler::target::word TypedDataView_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedDataView_typed_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
TypedDataView_offset_in_bytes_offset = 32;
|
||||
static constexpr dart::compiler::target::word TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -9318,8 +9334,7 @@ static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
|
||||
104;
|
||||
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
|
||||
12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_PointerBase_data_field_offset = 4;
|
||||
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 4;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_Pointer_type_arguments_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -9589,11 +9604,11 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
|
||||
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 12;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
|
||||
8;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataView_data_offset =
|
||||
12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_typed_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_offset_in_bytes_offset = 16;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_payload_offset = 12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_UnhandledException_exception_offset = 4;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -9950,8 +9965,7 @@ static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_Pointer_type_arguments_offset = 16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -10222,11 +10236,11 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
|
||||
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataView_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_typed_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_offset_in_bytes_offset = 32;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -10588,8 +10602,7 @@ static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_Pointer_type_arguments_offset = 16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -10860,11 +10873,11 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
|
||||
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataView_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_typed_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_offset_in_bytes_offset = 32;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -11223,8 +11236,7 @@ static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_Pointer_type_arguments_offset = 16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -11495,11 +11507,11 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
|
||||
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
|
||||
20;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataView_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_typed_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_offset_in_bytes_offset = 28;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -11857,8 +11869,7 @@ static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_Pointer_type_arguments_offset = 16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -12129,11 +12140,11 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
|
||||
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
|
||||
20;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataView_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_typed_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_offset_in_bytes_offset = 28;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -12492,8 +12503,7 @@ static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
|
||||
104;
|
||||
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
|
||||
12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_PointerBase_data_field_offset = 4;
|
||||
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 4;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_Pointer_type_arguments_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -12763,11 +12773,11 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
|
||||
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 12;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
|
||||
8;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataView_data_offset =
|
||||
12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_typed_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_offset_in_bytes_offset = 16;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_payload_offset = 12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_UnhandledException_exception_offset = 4;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -13126,8 +13136,7 @@ static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_Pointer_type_arguments_offset = 16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -13398,11 +13407,11 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
|
||||
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataView_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_typed_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_offset_in_bytes_offset = 32;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -13756,8 +13765,7 @@ static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
|
||||
104;
|
||||
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
|
||||
12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_PointerBase_data_field_offset = 4;
|
||||
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 4;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_Pointer_type_arguments_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -14027,11 +14035,11 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
|
||||
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 12;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
|
||||
8;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataView_data_offset =
|
||||
12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_typed_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_offset_in_bytes_offset = 16;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_payload_offset = 12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_UnhandledException_exception_offset = 4;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -14381,8 +14389,7 @@ static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_Pointer_type_arguments_offset = 16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -14653,11 +14660,11 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
|
||||
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataView_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_typed_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_offset_in_bytes_offset = 32;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -15012,8 +15019,7 @@ static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_Pointer_type_arguments_offset = 16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -15284,11 +15290,11 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
|
||||
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataView_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_typed_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_offset_in_bytes_offset = 32;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -15640,8 +15646,7 @@ static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_Pointer_type_arguments_offset = 16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -15912,11 +15917,11 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
|
||||
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
|
||||
20;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataView_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_typed_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_offset_in_bytes_offset = 28;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -16267,8 +16272,7 @@ static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_Pointer_type_arguments_offset = 16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -16539,11 +16543,11 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
|
||||
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
|
||||
20;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataView_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_typed_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_offset_in_bytes_offset = 28;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -16895,8 +16899,7 @@ static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
|
||||
104;
|
||||
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
|
||||
12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_PointerBase_data_field_offset = 4;
|
||||
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 4;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_Pointer_type_arguments_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -17166,11 +17169,11 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
|
||||
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 12;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
|
||||
8;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataView_data_offset =
|
||||
12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_typed_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_offset_in_bytes_offset = 16;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_data_offset = 12;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_payload_offset = 12;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_UnhandledException_exception_offset = 4;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -17522,8 +17525,7 @@ static constexpr dart::compiler::target::word AOT_ObjectStore_type_type_offset =
|
||||
208;
|
||||
static constexpr dart::compiler::target::word AOT_OneByteString_data_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_PointerBase_data_field_offset = 8;
|
||||
static constexpr dart::compiler::target::word AOT_PointerBase_data_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_Pointer_type_arguments_offset = 16;
|
||||
static constexpr dart::compiler::target::word
|
||||
@@ -17794,11 +17796,11 @@ static constexpr dart::compiler::target::word AOT_TypeParameter_flags_offset =
|
||||
static constexpr dart::compiler::target::word AOT_TypeRef_type_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataBase_length_offset =
|
||||
16;
|
||||
static constexpr dart::compiler::target::word AOT_TypedDataView_data_offset =
|
||||
24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_typed_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_TypedDataView_offset_in_bytes_offset = 32;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_data_offset = 24;
|
||||
static constexpr dart::compiler::target::word AOT_TypedData_payload_offset = 24;
|
||||
static constexpr dart::compiler::target::word
|
||||
AOT_UnhandledException_exception_offset = 8;
|
||||
static constexpr dart::compiler::target::word
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
FIELD(ObjectStore, string_type_offset) \
|
||||
FIELD(ObjectStore, type_type_offset) \
|
||||
FIELD(OneByteString, data_offset) \
|
||||
FIELD(PointerBase, data_field_offset) \
|
||||
FIELD(PointerBase, data_offset) \
|
||||
FIELD(Pointer, type_arguments_offset) \
|
||||
FIELD(SingleTargetCache, entry_point_offset) \
|
||||
FIELD(SingleTargetCache, lower_limit_offset) \
|
||||
@@ -322,9 +322,9 @@
|
||||
FIELD(TypeParameter, flags_offset) \
|
||||
FIELD(TypeRef, type_offset) \
|
||||
FIELD(TypedDataBase, length_offset) \
|
||||
FIELD(TypedDataView, data_offset) \
|
||||
FIELD(TypedDataView, typed_data_offset) \
|
||||
FIELD(TypedDataView, offset_in_bytes_offset) \
|
||||
FIELD(TypedData, data_offset) \
|
||||
FIELD(TypedData, payload_offset) \
|
||||
FIELD(UnhandledException, exception_offset) \
|
||||
FIELD(UnhandledException, stacktrace_offset) \
|
||||
FIELD(UserTag, tag_offset) \
|
||||
|
||||
@@ -3515,7 +3515,7 @@ void StubCodeCompiler::GenerateAllocateTypedDataArrayStub(Assembler* assembler,
|
||||
__ mov(R9, Operand(R8));
|
||||
__ AddImmediate(R3, R0, target::TypedData::HeaderSize() - 1);
|
||||
__ StoreInternalPointer(
|
||||
R0, FieldAddress(R0, target::TypedDataBase::data_field_offset()), R3);
|
||||
R0, FieldAddress(R0, target::PointerBase::data_offset()), R3);
|
||||
Label init_loop;
|
||||
__ Bind(&init_loop);
|
||||
__ AddImmediate(R3, 2 * target::kWordSize);
|
||||
|
||||
@@ -3726,7 +3726,7 @@ void StubCodeCompiler::GenerateAllocateTypedDataArrayStub(Assembler* assembler,
|
||||
/* data area to be initialized. */
|
||||
__ AddImmediate(R2, R0, target::TypedData::HeaderSize() - 1);
|
||||
__ StoreInternalPointer(
|
||||
R0, FieldAddress(R0, target::TypedDataBase::data_field_offset()), R2);
|
||||
R0, FieldAddress(R0, target::PointerBase::data_offset()), R2);
|
||||
Label init_loop, done;
|
||||
__ Bind(&init_loop);
|
||||
__ cmp(R2, Operand(R1));
|
||||
|
||||
@@ -3059,8 +3059,7 @@ void StubCodeCompiler::GenerateAllocateTypedDataArrayStub(Assembler* assembler,
|
||||
__ xorl(ECX, ECX); /* Zero. */
|
||||
__ leal(EDI, FieldAddress(EAX, target::TypedData::HeaderSize()));
|
||||
__ StoreInternalPointer(
|
||||
EAX, FieldAddress(EAX, target::TypedDataBase::data_field_offset()),
|
||||
EDI);
|
||||
EAX, FieldAddress(EAX, target::PointerBase::data_offset()), EDI);
|
||||
Label done, init_loop;
|
||||
__ Bind(&init_loop);
|
||||
__ cmpl(EDI, EBX);
|
||||
|
||||
@@ -3619,7 +3619,7 @@ void StubCodeCompiler::GenerateAllocateTypedDataArrayStub(Assembler* assembler,
|
||||
/* data area to be initialized. */
|
||||
__ AddImmediate(T3, A0, target::TypedData::HeaderSize() - 1);
|
||||
__ StoreInternalPointer(
|
||||
A0, FieldAddress(A0, target::TypedDataBase::data_field_offset()), T3);
|
||||
A0, FieldAddress(A0, target::PointerBase::data_offset()), T3);
|
||||
Label init_loop, done;
|
||||
__ Bind(&init_loop);
|
||||
__ bgeu(T3, T4, &done);
|
||||
|
||||
@@ -3782,8 +3782,7 @@ void StubCodeCompiler::GenerateAllocateTypedDataArrayStub(Assembler* assembler,
|
||||
__ xorq(RBX, RBX); /* Zero. */
|
||||
__ leaq(RDI, FieldAddress(RAX, target::TypedData::HeaderSize()));
|
||||
__ StoreInternalPointer(
|
||||
RAX, FieldAddress(RAX, target::TypedDataBase::data_field_offset()),
|
||||
RDI);
|
||||
RAX, FieldAddress(RAX, target::PointerBase::data_offset()), RDI);
|
||||
Label done, init_loop;
|
||||
__ Bind(&init_loop);
|
||||
__ cmpq(RDI, RCX);
|
||||
|
||||
@@ -19685,7 +19685,7 @@ intptr_t Instance::DataOffsetFor(intptr_t cid) {
|
||||
return 0;
|
||||
}
|
||||
if (IsTypedDataClassId(cid)) {
|
||||
return TypedData::data_offset();
|
||||
return TypedData::payload_offset();
|
||||
}
|
||||
switch (cid) {
|
||||
case kArrayCid:
|
||||
|
||||
+5
-7
@@ -10686,7 +10686,7 @@ class Float64x2 : public Instance {
|
||||
|
||||
class PointerBase : public Instance {
|
||||
public:
|
||||
static intptr_t data_field_offset() {
|
||||
static intptr_t data_offset() {
|
||||
return OFFSET_OF(UntaggedPointerBase, data_);
|
||||
}
|
||||
};
|
||||
@@ -10830,7 +10830,9 @@ class TypedData : public TypedDataBase {
|
||||
|
||||
#undef TYPED_GETTER_SETTER
|
||||
|
||||
static intptr_t data_offset() { return UntaggedTypedData::payload_offset(); }
|
||||
static intptr_t payload_offset() {
|
||||
return UntaggedTypedData::payload_offset();
|
||||
}
|
||||
|
||||
static intptr_t InstanceSize() {
|
||||
ASSERT(sizeof(UntaggedTypedData) ==
|
||||
@@ -10940,10 +10942,6 @@ class ExternalTypedData : public TypedDataBase {
|
||||
Dart_HandleFinalizer callback,
|
||||
intptr_t external_size) const;
|
||||
|
||||
static intptr_t data_offset() {
|
||||
return OFFSET_OF(UntaggedExternalTypedData, data_);
|
||||
}
|
||||
|
||||
static intptr_t InstanceSize() {
|
||||
return RoundedAllocationSize(sizeof(UntaggedExternalTypedData));
|
||||
}
|
||||
@@ -11016,7 +11014,7 @@ class TypedDataView : public TypedDataBase {
|
||||
return IsExternalTypedDataClassId(cid);
|
||||
}
|
||||
|
||||
static intptr_t data_offset() {
|
||||
static intptr_t typed_data_offset() {
|
||||
return OFFSET_OF(UntaggedTypedDataView, typed_data_);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user