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

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: addressed comments, added tests and flags 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 1197 matching lines...) Expand 10 before | Expand all | Expand 10 after
1208 RawAbstractType* BinaryMintOpInstr::CompileType() const { 1208 RawAbstractType* BinaryMintOpInstr::CompileType() const {
1209 return Type::MintType(); 1209 return Type::MintType();
1210 } 1210 }
1211 1211
1212 1212
1213 intptr_t BinaryMintOpInstr::ResultCid() const { 1213 intptr_t BinaryMintOpInstr::ResultCid() const {
1214 return kMintCid; 1214 return kMintCid;
1215 } 1215 }
1216 1216
1217 1217
1218 RawAbstractType* UnboxedMintBinaryOpInstr::CompileType() const {
1219 return Type::MintType();
1220 }
1221
1222
1223 intptr_t UnboxedMintBinaryOpInstr::ResultCid() const {
1224 return kMintCid;
1225 }
1226
1227
1218 RawAbstractType* UnboxedDoubleBinaryOpInstr::CompileType() const { 1228 RawAbstractType* UnboxedDoubleBinaryOpInstr::CompileType() const {
1219 return Type::Double(); 1229 return Type::Double();
1220 } 1230 }
1221 1231
1222 1232
1223 RawAbstractType* MathSqrtInstr::CompileType() const { 1233 RawAbstractType* MathSqrtInstr::CompileType() const {
1224 return Type::Double(); 1234 return Type::Double();
1225 } 1235 }
1226 1236
1227 1237
1228 RawAbstractType* UnboxDoubleInstr::CompileType() const { 1238 RawAbstractType* UnboxDoubleInstr::CompileType() const {
1229 return Type::null(); 1239 return Type::null();
1230 } 1240 }
1231 1241
1232 1242
1233 intptr_t BoxDoubleInstr::ResultCid() const { 1243 intptr_t BoxDoubleInstr::ResultCid() const {
1234 return kDoubleCid; 1244 return kDoubleCid;
1235 } 1245 }
1236 1246
1237 1247
1238 RawAbstractType* BoxDoubleInstr::CompileType() const { 1248 RawAbstractType* BoxDoubleInstr::CompileType() const {
1239 return Type::Double(); 1249 return Type::Double();
1240 } 1250 }
1241 1251
1242 1252
1253 intptr_t BoxIntegerInstr::ResultCid() const {
1254 return kIntegerCid;
srdjan 2012/09/28 16:50:26 This type is not very helpful. It would be good if
Florian Schneider 2012/10/02 11:10:31 Done. If we don't know anything about the range of
1255 }
1256
1257
1258 RawAbstractType* BoxIntegerInstr::CompileType() const {
1259 return Type::IntType();
1260 }
1261
1262
1263 intptr_t UnboxIntegerInstr::ResultCid() const {
1264 return kIntegerCid;
srdjan 2012/09/28 16:50:26 ditto. We should use only non-abstract class class
Florian Schneider 2012/10/02 11:10:31 Done.
1265 }
1266
1267
1268 RawAbstractType* UnboxIntegerInstr::CompileType() const {
1269 return Type::null();
1270 }
1271
1272
1243 RawAbstractType* UnarySmiOpInstr::CompileType() const { 1273 RawAbstractType* UnarySmiOpInstr::CompileType() const {
1244 return Type::SmiType(); 1274 return Type::SmiType();
1245 } 1275 }
1246 1276
1247 1277
1248 RawAbstractType* DoubleToDoubleInstr::CompileType() const { 1278 RawAbstractType* DoubleToDoubleInstr::CompileType() const {
1249 return Type::Double(); 1279 return Type::Double();
1250 } 1280 }
1251 1281
1252 1282
(...skipping 783 matching lines...) Expand 10 before | Expand all | Expand 10 after
2036 new_max = new_max.Clamp(); 2066 new_max = new_max.Clamp();
2037 } 2067 }
2038 2068
2039 return Range::Update(&range_, new_min, new_max); 2069 return Range::Update(&range_, new_min, new_max);
2040 } 2070 }
2041 2071
2042 2072
2043 #undef __ 2073 #undef __
2044 2074
2045 } // namespace dart 2075 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698