| Index: src/ic.cc
|
| diff --git a/src/ic.cc b/src/ic.cc
|
| index 3f5326b002304e3d3d9ae9f5a47cd2afeceaffcc..8dc23ea0a87f3e879c8f90715251b58952136f07 100644
|
| --- a/src/ic.cc
|
| +++ b/src/ic.cc
|
| @@ -1,4 +1,4 @@
|
| -// Copyright 2006-2009 the V8 project authors. All rights reserved.
|
| +// Copyright 2011 the V8 project authors. All rights reserved.
|
| // Redistribution and use in source and binary forms, with or without
|
| // modification, are permitted provided that the following conditions are
|
| // met:
|
| @@ -2031,7 +2031,10 @@ RUNTIME_FUNCTION(MaybeObject*, TypeRecordingBinaryOp_Patch) {
|
| type = TRBinaryOpIC::GENERIC;
|
| }
|
| if (type == TRBinaryOpIC::SMI && previous_type == TRBinaryOpIC::SMI) {
|
| - if (op == Token::DIV || op == Token::MUL || kSmiValueSize == 32) {
|
| + if (op == Token::DIV ||
|
| + op == Token::MUL ||
|
| + op == Token::SHR ||
|
| + kSmiValueSize == 32) {
|
| // Arithmetic on two Smi inputs has yielded a heap number.
|
| // That is the only way to get here from the Smi stub.
|
| // With 32-bit Smis, all overflows give heap numbers, but with
|
|
|