[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:
Alexander Markov
2022-02-02 16:30:50 +00:00
committed by Commit Bot
parent 58a42b5cfc
commit 45f42d0be8
28 changed files with 307 additions and 324 deletions
+18 -18
View File
@@ -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.
+23 -23
View File
@@ -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.
+29 -29
View File
@@ -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.
+29 -29
View File
@@ -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.
+11 -13
View File
@@ -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;
+4 -5
View File
@@ -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(
+4 -5
View File
@@ -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(
+5 -6
View File
@@ -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));
+3 -3
View File
@@ -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(
+5 -6
View File
@@ -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));
+4 -6
View File
@@ -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:
+1 -2
View File
@@ -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:
+2 -4
View File
@@ -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)
+4 -6
View File
@@ -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(
+22 -22
View File
@@ -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()) {
+2 -2
View File
@@ -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) ||
+1 -1
View File
@@ -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:
+5 -6
View File
@@ -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();
+120 -118
View File
@@ -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
+3 -3
View File
@@ -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);
+1 -1
View File
@@ -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
View File
@@ -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_);
}