OLD | NEW |
1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 6540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6551 | 6551 |
6552 answer = allocator()->Allocate(); | 6552 answer = allocator()->Allocate(); |
6553 DeferredInlineSmiOperationReversed* deferred = | 6553 DeferredInlineSmiOperationReversed* deferred = |
6554 new DeferredInlineSmiOperationReversed(op, | 6554 new DeferredInlineSmiOperationReversed(op, |
6555 answer.reg(), | 6555 answer.reg(), |
6556 smi_value, | 6556 smi_value, |
6557 right.reg(), | 6557 right.reg(), |
6558 overwrite_mode); | 6558 overwrite_mode); |
6559 __ movq(answer.reg(), Immediate(int_value)); | 6559 __ movq(answer.reg(), Immediate(int_value)); |
6560 __ SmiToInteger32(rcx, rcx); | 6560 __ SmiToInteger32(rcx, rcx); |
6561 if (!right.type_info().IsSmi()) { | 6561 if (!right_type_info.IsSmi()) { |
6562 Condition is_smi = masm_->CheckSmi(right.reg()); | 6562 Condition is_smi = masm_->CheckSmi(right.reg()); |
6563 deferred->Branch(NegateCondition(is_smi)); | 6563 deferred->Branch(NegateCondition(is_smi)); |
6564 } else if (FLAG_debug_code) { | 6564 } else if (FLAG_debug_code) { |
6565 __ AbortIfNotSmi(right.reg(), | 6565 __ AbortIfNotSmi(right.reg(), |
6566 "Static type info claims non-smi is smi in (const SHL smi)."); | 6566 "Static type info claims non-smi is smi in (const SHL smi)."); |
6567 } | 6567 } |
6568 __ shl_cl(answer.reg()); | 6568 __ shl_cl(answer.reg()); |
6569 __ Integer32ToSmi(answer.reg(), answer.reg()); | 6569 __ Integer32ToSmi(answer.reg(), answer.reg()); |
6570 | 6570 |
6571 deferred->BindExit(); | 6571 deferred->BindExit(); |
(...skipping 4834 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11406 // Call the function from C++. | 11406 // Call the function from C++. |
11407 return FUNCTION_CAST<ModuloFunction>(buffer); | 11407 return FUNCTION_CAST<ModuloFunction>(buffer); |
11408 } | 11408 } |
11409 | 11409 |
11410 #endif | 11410 #endif |
11411 | 11411 |
11412 | 11412 |
11413 #undef __ | 11413 #undef __ |
11414 | 11414 |
11415 } } // namespace v8::internal | 11415 } } // namespace v8::internal |
OLD | NEW |