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 2075 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2086 void TypeRecordingBinaryOpStub::GenerateGeneric(MacroAssembler* masm) { | 2086 void TypeRecordingBinaryOpStub::GenerateGeneric(MacroAssembler* masm) { |
2087 Label call_runtime; | 2087 Label call_runtime; |
2088 | 2088 |
2089 __ IncrementCounter(&Counters::generic_binary_stub_calls, 1); | 2089 __ IncrementCounter(&Counters::generic_binary_stub_calls, 1); |
2090 | 2090 |
2091 switch (op_) { | 2091 switch (op_) { |
2092 case Token::ADD: | 2092 case Token::ADD: |
2093 case Token::SUB: | 2093 case Token::SUB: |
2094 case Token::MUL: | 2094 case Token::MUL: |
2095 case Token::DIV: | 2095 case Token::DIV: |
| 2096 case Token::MOD: |
2096 break; | 2097 break; |
2097 case Token::MOD: | |
2098 case Token::BIT_OR: | 2098 case Token::BIT_OR: |
2099 case Token::BIT_AND: | 2099 case Token::BIT_AND: |
2100 case Token::BIT_XOR: | 2100 case Token::BIT_XOR: |
2101 case Token::SAR: | 2101 case Token::SAR: |
2102 case Token::SHL: | 2102 case Token::SHL: |
2103 case Token::SHR: | 2103 case Token::SHR: |
2104 GenerateRegisterArgsPush(masm); | 2104 GenerateRegisterArgsPush(masm); |
2105 break; | 2105 break; |
2106 default: | 2106 default: |
2107 UNREACHABLE(); | 2107 UNREACHABLE(); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2153 } | 2153 } |
2154 __ bind(¬_floats); | 2154 __ bind(¬_floats); |
2155 break; | 2155 break; |
2156 } | 2156 } |
2157 case Token::MOD: { | 2157 case Token::MOD: { |
2158 // For MOD we go directly to runtime in the non-smi case. | 2158 // For MOD we go directly to runtime in the non-smi case. |
2159 break; | 2159 break; |
2160 } | 2160 } |
2161 case Token::BIT_OR: | 2161 case Token::BIT_OR: |
2162 case Token::BIT_AND: | 2162 case Token::BIT_AND: |
2163 case Token::BIT_XOR: | 2163 case Token::BIT_XOR: |
2164 case Token::SAR: | 2164 case Token::SAR: |
2165 case Token::SHL: | 2165 case Token::SHL: |
2166 case Token::SHR: { | 2166 case Token::SHR: { |
2167 Label non_smi_result; | 2167 Label non_smi_result; |
2168 FloatingPointHelper::LoadUnknownsAsIntegers(masm, | 2168 FloatingPointHelper::LoadUnknownsAsIntegers(masm, |
2169 use_sse3_, | 2169 use_sse3_, |
2170 &call_runtime); | 2170 &call_runtime); |
2171 switch (op_) { | 2171 switch (op_) { |
2172 case Token::BIT_OR: __ or_(eax, Operand(ecx)); break; | 2172 case Token::BIT_OR: __ or_(eax, Operand(ecx)); break; |
2173 case Token::BIT_AND: __ and_(eax, Operand(ecx)); break; | 2173 case Token::BIT_AND: __ and_(eax, Operand(ecx)); break; |
(...skipping 4237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6411 // Do a tail call to the rewritten stub. | 6411 // Do a tail call to the rewritten stub. |
6412 __ jmp(Operand(edi)); | 6412 __ jmp(Operand(edi)); |
6413 } | 6413 } |
6414 | 6414 |
6415 | 6415 |
6416 #undef __ | 6416 #undef __ |
6417 | 6417 |
6418 } } // namespace v8::internal | 6418 } } // namespace v8::internal |
6419 | 6419 |
6420 #endif // V8_TARGET_ARCH_IA32 | 6420 #endif // V8_TARGET_ARCH_IA32 |
OLD | NEW |