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

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

Issue 10968059: Support for unboxed 64-bit integer bitwise operations and equality on ia32. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: fixed boxing of smis and added one more test Created 8 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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/intermediate_language.h" 5 #include "vm/intermediate_language.h"
6 6
7 #include "vm/bit_vector.h" 7 #include "vm/bit_vector.h"
8 #include "vm/dart_entry.h" 8 #include "vm/dart_entry.h"
9 #include "vm/flow_graph_allocator.h" 9 #include "vm/flow_graph_allocator.h"
10 #include "vm/flow_graph_builder.h" 10 #include "vm/flow_graph_builder.h"
(...skipping 1185 matching lines...) Expand 10 before | Expand all | Expand 10 after
1196 case Token::kBIT_AND: 1196 case Token::kBIT_AND:
1197 case Token::kBIT_OR: 1197 case Token::kBIT_OR:
1198 case Token::kBIT_XOR: 1198 case Token::kBIT_XOR:
1199 return false; 1199 return false;
1200 default: 1200 default:
1201 return overflow_; 1201 return overflow_;
1202 } 1202 }
1203 } 1203 }
1204 1204
1205 1205
1206 RawAbstractType* BinaryMintOpInstr::CompileType() const { 1206 RawAbstractType* UnboxedMintBinaryOpInstr::CompileType() const {
1207 return Type::MintType(); 1207 return Type::MintType();
1208 } 1208 }
1209 1209
1210 1210
1211 intptr_t BinaryMintOpInstr::ResultCid() const { 1211 intptr_t UnboxedMintBinaryOpInstr::ResultCid() const {
1212 return kMintCid; 1212 return kMintCid;
1213 } 1213 }
1214 1214
1215 1215
1216 RawAbstractType* UnboxedDoubleBinaryOpInstr::CompileType() const { 1216 RawAbstractType* UnboxedDoubleBinaryOpInstr::CompileType() const {
1217 return Type::Double(); 1217 return Type::Double();
1218 } 1218 }
1219 1219
1220 1220
1221 RawAbstractType* MathSqrtInstr::CompileType() const { 1221 RawAbstractType* MathSqrtInstr::CompileType() const {
1222 return Type::Double(); 1222 return Type::Double();
1223 } 1223 }
1224 1224
1225 1225
1226 RawAbstractType* UnboxDoubleInstr::CompileType() const { 1226 RawAbstractType* UnboxDoubleInstr::CompileType() const {
1227 return Type::null(); 1227 return Type::null();
1228 } 1228 }
1229 1229
1230 1230
1231 intptr_t BoxDoubleInstr::ResultCid() const { 1231 intptr_t BoxDoubleInstr::ResultCid() const {
1232 return kDoubleCid; 1232 return kDoubleCid;
1233 } 1233 }
1234 1234
1235 1235
1236 RawAbstractType* BoxDoubleInstr::CompileType() const { 1236 RawAbstractType* BoxDoubleInstr::CompileType() const {
1237 return Type::Double(); 1237 return Type::Double();
1238 } 1238 }
1239 1239
1240 1240
1241 intptr_t BoxIntegerInstr::ResultCid() const {
1242 return kIntegerCid;
1243 }
1244
1245
1246 RawAbstractType* BoxIntegerInstr::CompileType() const {
1247 return Type::IntType();
1248 }
1249
1250
1251 intptr_t UnboxIntegerInstr::ResultCid() const {
1252 return kIntegerCid;
1253 }
1254
1255
1256 RawAbstractType* UnboxIntegerInstr::CompileType() const {
1257 return Type::null();
1258 }
1259
1260
1241 RawAbstractType* UnarySmiOpInstr::CompileType() const { 1261 RawAbstractType* UnarySmiOpInstr::CompileType() const {
1242 return Type::SmiType(); 1262 return Type::SmiType();
1243 } 1263 }
1244 1264
1245 1265
1246 RawAbstractType* DoubleToDoubleInstr::CompileType() const { 1266 RawAbstractType* DoubleToDoubleInstr::CompileType() const {
1247 return Type::Double(); 1267 return Type::Double();
1248 } 1268 }
1249 1269
1250 1270
(...skipping 729 matching lines...) Expand 10 before | Expand all | Expand 10 after
1980 2000
1981 ASSERT(!new_min.IsUnknown() && !new_max.IsUnknown()); 2001 ASSERT(!new_min.IsUnknown() && !new_max.IsUnknown());
1982 set_overflow(new_min.Overflowed() || new_max.Overflowed()); 2002 set_overflow(new_min.Overflowed() || new_max.Overflowed());
1983 return Range::Update(&range_, new_min, new_max); 2003 return Range::Update(&range_, new_min, new_max);
1984 } 2004 }
1985 2005
1986 2006
1987 #undef __ 2007 #undef __
1988 2008
1989 } // namespace dart 2009 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698