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

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

Issue 1217323002: Intrinsic version of Object.runtimeType (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: more Created 5 years, 5 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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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_ARM) 6 #if defined(TARGET_ARCH_ARM)
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 1948 matching lines...) Expand 10 before | Expand all | Expand 10 after
1959 1959
1960 1960
1961 void Assembler::CompareClassId(Register object, 1961 void Assembler::CompareClassId(Register object,
1962 intptr_t class_id, 1962 intptr_t class_id,
1963 Register scratch) { 1963 Register scratch) {
1964 LoadClassId(scratch, object); 1964 LoadClassId(scratch, object);
1965 CompareImmediate(scratch, class_id); 1965 CompareImmediate(scratch, class_id);
1966 } 1966 }
1967 1967
1968 1968
1969 void Assembler::LoadTaggedClassIdMayBeSmi(Register result, Register object) { 1969 void Assembler::LoadClassIdMayBeSmi(Register result, Register object) {
1970 static const intptr_t kSmiCidSource = kSmiCid << RawObject::kClassIdTagPos; 1970 static const intptr_t kSmiCidSource = kSmiCid << RawObject::kClassIdTagPos;
1971 1971
1972 LoadImmediate(TMP, reinterpret_cast<int32_t>(&kSmiCidSource) + 1); 1972 LoadImmediate(TMP, reinterpret_cast<int32_t>(&kSmiCidSource) + 1);
1973 tst(object, Operand(kSmiTagMask)); 1973 tst(object, Operand(kSmiTagMask));
1974 mov(TMP, Operand(object), NE); 1974 mov(TMP, Operand(object), NE);
1975 LoadClassId(result, TMP); 1975 LoadClassId(result, TMP);
1976 }
1977
1978
1979 void Assembler::LoadTaggedClassIdMayBeSmi(Register result, Register object) {
1980 LoadClassIdMayBeSmi(result, object);
1976 SmiTag(result); 1981 SmiTag(result);
1977 } 1982 }
1978 1983
1979 1984
1980 void Assembler::ComputeRange(Register result, 1985 void Assembler::ComputeRange(Register result,
1981 Register value, 1986 Register value,
1982 Register scratch, 1987 Register scratch,
1983 Label* not_mint) { 1988 Label* not_mint) {
1984 const Register hi = TMP; 1989 const Register hi = TMP;
1985 const Register lo = scratch; 1990 const Register lo = scratch;
(...skipping 1596 matching lines...) Expand 10 before | Expand all | Expand 10 after
3582 3587
3583 3588
3584 const char* Assembler::FpuRegisterName(FpuRegister reg) { 3589 const char* Assembler::FpuRegisterName(FpuRegister reg) {
3585 ASSERT((0 <= reg) && (reg < kNumberOfFpuRegisters)); 3590 ASSERT((0 <= reg) && (reg < kNumberOfFpuRegisters));
3586 return fpu_reg_names[reg]; 3591 return fpu_reg_names[reg];
3587 } 3592 }
3588 3593
3589 } // namespace dart 3594 } // namespace dart
3590 3595
3591 #endif // defined TARGET_ARCH_ARM 3596 #endif // defined TARGET_ARCH_ARM
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698