mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 04:16:51 +00:00
[VM] Support inlining of _TypedList._setInt64 on x64
Issue: https://github.com/dart-lang/sdk/issues/32080 Change-Id: I692d1873acc4c9816ccc6929f51e0ed699f585da Reviewed-on: https://dart-review.googlesource.com/40103 Reviewed-by: Vyacheslav Egorov <vegorov@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>
This commit is contained in:
parent
56d59dd967
commit
1bebd7aa1d
|
@ -2768,6 +2768,10 @@ static bool InlineByteArrayBaseStore(FlowGraph* flow_graph,
|
|||
value_check = Cids::CreateMonomorphic(Z, kFloat32x4Cid);
|
||||
break;
|
||||
}
|
||||
case kTypedDataInt64ArrayCid:
|
||||
// StoreIndexedInstr takes unboxed int64, so value
|
||||
// is checked when unboxing.
|
||||
break;
|
||||
default:
|
||||
// Array cids are already checked in the caller.
|
||||
UNREACHABLE();
|
||||
|
@ -3339,6 +3343,13 @@ bool FlowGraphInliner::TryInlineRecognizedMethod(
|
|||
return InlineByteArrayBaseStore(flow_graph, target, call, receiver,
|
||||
receiver_cid, kTypedDataUint32ArrayCid,
|
||||
entry, last);
|
||||
case MethodRecognizer::kByteArrayBaseSetInt64:
|
||||
if (!ShouldInlineInt64ArrayOps()) {
|
||||
return false;
|
||||
}
|
||||
return InlineByteArrayBaseStore(flow_graph, target, call, receiver,
|
||||
receiver_cid, kTypedDataInt64ArrayCid,
|
||||
entry, last);
|
||||
case MethodRecognizer::kByteArrayBaseSetFloat32:
|
||||
if (!CanUnboxDouble()) {
|
||||
return false;
|
||||
|
|
Loading…
Reference in a new issue