| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #if V8_TARGET_ARCH_X87 | 7 #if V8_TARGET_ARCH_X87 |
| 8 | 8 |
| 9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
| 10 #include "src/code-factory.h" | 10 #include "src/code-factory.h" |
| (...skipping 1890 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1901 LOperand* left = instr->left(); | 1901 LOperand* left = instr->left(); |
| 1902 LOperand* right = instr->right(); | 1902 LOperand* right = instr->right(); |
| 1903 DCHECK(left->Equals(instr->result())); | 1903 DCHECK(left->Equals(instr->result())); |
| 1904 DCHECK(left->IsRegister()); | 1904 DCHECK(left->IsRegister()); |
| 1905 if (right->IsRegister()) { | 1905 if (right->IsRegister()) { |
| 1906 DCHECK(ToRegister(right).is(ecx)); | 1906 DCHECK(ToRegister(right).is(ecx)); |
| 1907 | 1907 |
| 1908 switch (instr->op()) { | 1908 switch (instr->op()) { |
| 1909 case Token::ROR: | 1909 case Token::ROR: |
| 1910 __ ror_cl(ToRegister(left)); | 1910 __ ror_cl(ToRegister(left)); |
| 1911 if (instr->can_deopt()) { | |
| 1912 __ test(ToRegister(left), ToRegister(left)); | |
| 1913 DeoptimizeIf(sign, instr); | |
| 1914 } | |
| 1915 break; | 1911 break; |
| 1916 case Token::SAR: | 1912 case Token::SAR: |
| 1917 __ sar_cl(ToRegister(left)); | 1913 __ sar_cl(ToRegister(left)); |
| 1918 break; | 1914 break; |
| 1919 case Token::SHR: | 1915 case Token::SHR: |
| 1920 __ shr_cl(ToRegister(left)); | 1916 __ shr_cl(ToRegister(left)); |
| 1921 if (instr->can_deopt()) { | 1917 if (instr->can_deopt()) { |
| 1922 __ test(ToRegister(left), ToRegister(left)); | 1918 __ test(ToRegister(left), ToRegister(left)); |
| 1923 DeoptimizeIf(sign, instr); | 1919 DeoptimizeIf(sign, instr); |
| 1924 } | 1920 } |
| (...skipping 4313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6238 CallRuntime(Runtime::kPushBlockContext, 2, instr); | 6234 CallRuntime(Runtime::kPushBlockContext, 2, instr); |
| 6239 RecordSafepoint(Safepoint::kNoLazyDeopt); | 6235 RecordSafepoint(Safepoint::kNoLazyDeopt); |
| 6240 } | 6236 } |
| 6241 | 6237 |
| 6242 | 6238 |
| 6243 #undef __ | 6239 #undef __ |
| 6244 | 6240 |
| 6245 } } // namespace v8::internal | 6241 } } // namespace v8::internal |
| 6246 | 6242 |
| 6247 #endif // V8_TARGET_ARCH_X87 | 6243 #endif // V8_TARGET_ARCH_X87 |
| OLD | NEW |