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 |