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

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

Issue 807593002: Merge RawICData::range_feedback_ field into RawICData::state_bits_. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years 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 | Annotate | Revision Log
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" // NOLINT 5 #include "vm/globals.h" // NOLINT
6 #if defined(TARGET_ARCH_ARM64) 6 #if defined(TARGET_ARCH_ARM64)
7 7
8 #include "vm/assembler.h" 8 #include "vm/assembler.h"
9 #include "vm/cpu.h" 9 #include "vm/cpu.h"
10 #include "vm/longjump.h" 10 #include "vm/longjump.h"
(...skipping 1152 matching lines...) Expand 10 before | Expand all | Expand 10 after
1163 1163
1164 1164
1165 void Assembler::UpdateRangeFeedback(Register value, 1165 void Assembler::UpdateRangeFeedback(Register value,
1166 intptr_t index, 1166 intptr_t index,
1167 Register ic_data, 1167 Register ic_data,
1168 Register scratch1, 1168 Register scratch1,
1169 Register scratch2, 1169 Register scratch2,
1170 Label* miss) { 1170 Label* miss) {
1171 ASSERT(ICData::IsValidRangeFeedbackIndex(index)); 1171 ASSERT(ICData::IsValidRangeFeedbackIndex(index));
1172 ComputeRange(scratch1, value, scratch2, miss); 1172 ComputeRange(scratch1, value, scratch2, miss);
1173 ldr(scratch2, FieldAddress(ic_data, ICData::range_feedback_offset()), kWord); 1173 ldr(scratch2, FieldAddress(ic_data, ICData::state_bits_offset()), kWord);
1174 orrw(scratch2, 1174 orrw(scratch2,
1175 scratch2, 1175 scratch2,
1176 Operand(scratch1, LSL, ICData::kBitsPerRangeFeedback * index)); 1176 Operand(scratch1, LSL, ICData::RangeFeedbackShift(index)));
1177 str(scratch2, FieldAddress(ic_data, ICData::range_feedback_offset()), kWord); 1177 str(scratch2, FieldAddress(ic_data, ICData::state_bits_offset()), kWord);
1178 } 1178 }
1179 1179
1180 1180
1181 // Frame entry and exit. 1181 // Frame entry and exit.
1182 void Assembler::ReserveAlignedFrameSpace(intptr_t frame_space) { 1182 void Assembler::ReserveAlignedFrameSpace(intptr_t frame_space) {
1183 // Reserve space for arguments and align frame before entering 1183 // Reserve space for arguments and align frame before entering
1184 // the C++ world. 1184 // the C++ world.
1185 if (frame_space != 0) { 1185 if (frame_space != 0) {
1186 AddImmediate(SP, SP, -frame_space, kNoPP); 1186 AddImmediate(SP, SP, -frame_space, kNoPP);
1187 } 1187 }
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
1557 add(base, array, Operand(index, LSL, shift)); 1557 add(base, array, Operand(index, LSL, shift));
1558 } 1558 }
1559 const OperandSize size = Address::OperandSizeFor(cid); 1559 const OperandSize size = Address::OperandSizeFor(cid);
1560 ASSERT(Address::CanHoldOffset(offset, Address::Offset, size)); 1560 ASSERT(Address::CanHoldOffset(offset, Address::Offset, size));
1561 return Address(base, offset, Address::Offset, size); 1561 return Address(base, offset, Address::Offset, size);
1562 } 1562 }
1563 1563
1564 } // namespace dart 1564 } // namespace dart
1565 1565
1566 #endif // defined TARGET_ARCH_ARM64 1566 #endif // defined TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « runtime/vm/assembler_arm.cc ('k') | runtime/vm/assembler_ia32.cc » ('j') | runtime/vm/object.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698