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 |