Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(752)

Side by Side Diff: runtime/vm/flow_graph_compiler_arm64.cc

Issue 2856543002: Use off-heap data for class check instructions (Closed)
Patch Set: Feedback from Slava: rejig inheritance of CallTargets Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM64. 5 #include "vm/globals.h" // Needed here to get TARGET_ARCH_ARM64.
6 #if defined(TARGET_ARCH_ARM64) 6 #if defined(TARGET_ARCH_ARM64)
7 7
8 #include "vm/flow_graph_compiler.h" 8 #include "vm/flow_graph_compiler.h"
9 9
10 #include "vm/ast_printer.h" 10 #include "vm/ast_printer.h"
(...skipping 1469 matching lines...) Expand 10 before | Expand all | Expand 10 after
1480 __ b(label, if_smi ? EQ : NE); 1480 __ b(label, if_smi ? EQ : NE);
1481 } 1481 }
1482 1482
1483 1483
1484 void FlowGraphCompiler::EmitTestAndCallLoadCid() { 1484 void FlowGraphCompiler::EmitTestAndCallLoadCid() {
1485 __ LoadClassId(R2, R0); 1485 __ LoadClassId(R2, R0);
1486 } 1486 }
1487 1487
1488 1488
1489 int FlowGraphCompiler::EmitTestAndCallCheckCid(Label* next_label, 1489 int FlowGraphCompiler::EmitTestAndCallCheckCid(Label* next_label,
1490 const CidRangeTarget& target, 1490 const CidRange& range,
1491 int bias) { 1491 int bias) {
1492 intptr_t cid_start = target.cid_start; 1492 intptr_t cid_start = range.cid_start;
1493 intptr_t cid_end = target.cid_end; 1493 intptr_t cid_end = range.cid_end;
1494 if (cid_start == cid_end) { 1494 if (cid_start == cid_end) {
1495 __ CompareImmediate(R2, cid_start - bias); 1495 __ CompareImmediate(R2, cid_start - bias);
1496 __ b(next_label, NE); 1496 __ b(next_label, NE);
1497 } else { 1497 } else {
1498 __ AddImmediate(R2, R2, bias - cid_start); 1498 __ AddImmediate(R2, R2, bias - cid_start);
1499 bias = cid_start; 1499 bias = cid_start;
1500 __ CompareImmediate(R2, cid_end - cid_start); 1500 __ CompareImmediate(R2, cid_end - cid_start);
1501 __ b(next_label, HI); // Unsigned higher. 1501 __ b(next_label, HI); // Unsigned higher.
1502 } 1502 }
1503 return bias; 1503 return bias;
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
1776 void ParallelMoveResolver::RestoreFpuScratch(FpuRegister reg) { 1776 void ParallelMoveResolver::RestoreFpuScratch(FpuRegister reg) {
1777 __ PopDouble(reg); 1777 __ PopDouble(reg);
1778 } 1778 }
1779 1779
1780 1780
1781 #undef __ 1781 #undef __
1782 1782
1783 } // namespace dart 1783 } // namespace dart
1784 1784
1785 #endif // defined TARGET_ARCH_ARM64 1785 #endif // defined TARGET_ARCH_ARM64
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698