| 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 900 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 911 __ add(sp, sp, Operand(1 * kPointerSize)); | 911 __ add(sp, sp, Operand(1 * kPointerSize)); |
| 912 __ Ret(); | 912 __ Ret(); |
| 913 | 913 |
| 914 __ bind(&runtime); | 914 __ bind(&runtime); |
| 915 // Handle number to string in the runtime system if not found in the cache. | 915 // Handle number to string in the runtime system if not found in the cache. |
| 916 __ TailCallRuntime(Runtime::kNumberToStringSkipCache, 1, 1); | 916 __ TailCallRuntime(Runtime::kNumberToStringSkipCache, 1, 1); |
| 917 } | 917 } |
| 918 | 918 |
| 919 | 919 |
| 920 void RecordWriteStub::Generate(MacroAssembler* masm) { | 920 void RecordWriteStub::Generate(MacroAssembler* masm) { |
| 921 #ifdef ENABLE_CARDMARKING_WRITE_BARRIER |
| 921 __ add(offset_, object_, Operand(offset_)); | 922 __ add(offset_, object_, Operand(offset_)); |
| 922 __ RecordWriteHelper(object_, offset_, scratch_); | 923 __ RecordWriteHelper(object_, offset_, scratch_); |
| 924 #endif |
| 923 __ Ret(); | 925 __ Ret(); |
| 924 } | 926 } |
| 925 | 927 |
| 926 | 928 |
| 927 // On entry lhs_ and rhs_ are the values to be compared. | 929 // On entry lhs_ and rhs_ are the values to be compared. |
| 928 // On exit r0 is 0, positive or negative to indicate the result of | 930 // On exit r0 is 0, positive or negative to indicate the result of |
| 929 // the comparison. | 931 // the comparison. |
| 930 void CompareStub::Generate(MacroAssembler* masm) { | 932 void CompareStub::Generate(MacroAssembler* masm) { |
| 931 ASSERT((lhs_.is(r0) && rhs_.is(r1)) || | 933 ASSERT((lhs_.is(r0) && rhs_.is(r1)) || |
| 932 (lhs_.is(r1) && rhs_.is(r0))); | 934 (lhs_.is(r1) && rhs_.is(r0))); |
| (...skipping 2480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3413 // r4: subject string | 3415 // r4: subject string |
| 3414 // Store the capture count. | 3416 // Store the capture count. |
| 3415 __ mov(r2, Operand(r1, LSL, kSmiTagSize + kSmiShiftSize)); // To smi. | 3417 __ mov(r2, Operand(r1, LSL, kSmiTagSize + kSmiShiftSize)); // To smi. |
| 3416 __ str(r2, FieldMemOperand(last_match_info_elements, | 3418 __ str(r2, FieldMemOperand(last_match_info_elements, |
| 3417 RegExpImpl::kLastCaptureCountOffset)); | 3419 RegExpImpl::kLastCaptureCountOffset)); |
| 3418 // Store last subject and last input. | 3420 // Store last subject and last input. |
| 3419 __ mov(r3, last_match_info_elements); // Moved up to reduce latency. | 3421 __ mov(r3, last_match_info_elements); // Moved up to reduce latency. |
| 3420 __ str(subject, | 3422 __ str(subject, |
| 3421 FieldMemOperand(last_match_info_elements, | 3423 FieldMemOperand(last_match_info_elements, |
| 3422 RegExpImpl::kLastSubjectOffset)); | 3424 RegExpImpl::kLastSubjectOffset)); |
| 3425 #ifdef ENABLE_CARDMARKING_WRITE_BARRIER |
| 3423 __ RecordWrite(r3, Operand(RegExpImpl::kLastSubjectOffset), r2, r7); | 3426 __ RecordWrite(r3, Operand(RegExpImpl::kLastSubjectOffset), r2, r7); |
| 3427 #endif |
| 3424 __ str(subject, | 3428 __ str(subject, |
| 3425 FieldMemOperand(last_match_info_elements, | 3429 FieldMemOperand(last_match_info_elements, |
| 3426 RegExpImpl::kLastInputOffset)); | 3430 RegExpImpl::kLastInputOffset)); |
| 3431 #ifdef ENABLE_CARDMARKING_WRITE_BARRIER |
| 3427 __ mov(r3, last_match_info_elements); | 3432 __ mov(r3, last_match_info_elements); |
| 3428 __ RecordWrite(r3, Operand(RegExpImpl::kLastInputOffset), r2, r7); | 3433 __ RecordWrite(r3, Operand(RegExpImpl::kLastInputOffset), r2, r7); |
| 3434 #endif |
| 3429 | 3435 |
| 3430 // Get the static offsets vector filled by the native regexp code. | 3436 // Get the static offsets vector filled by the native regexp code. |
| 3431 ExternalReference address_of_static_offsets_vector = | 3437 ExternalReference address_of_static_offsets_vector = |
| 3432 ExternalReference::address_of_static_offsets_vector(); | 3438 ExternalReference::address_of_static_offsets_vector(); |
| 3433 __ mov(r2, Operand(address_of_static_offsets_vector)); | 3439 __ mov(r2, Operand(address_of_static_offsets_vector)); |
| 3434 | 3440 |
| 3435 // r1: number of capture registers | 3441 // r1: number of capture registers |
| 3436 // r2: offsets vector | 3442 // r2: offsets vector |
| 3437 Label next_capture, done; | 3443 Label next_capture, done; |
| 3438 // Capture register counter starts from number of capture registers and | 3444 // Capture register counter starts from number of capture registers and |
| (...skipping 1520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4959 __ pop(r1); | 4965 __ pop(r1); |
| 4960 __ Jump(r2); | 4966 __ Jump(r2); |
| 4961 } | 4967 } |
| 4962 | 4968 |
| 4963 | 4969 |
| 4964 #undef __ | 4970 #undef __ |
| 4965 | 4971 |
| 4966 } } // namespace v8::internal | 4972 } } // namespace v8::internal |
| 4967 | 4973 |
| 4968 #endif // V8_TARGET_ARCH_ARM | 4974 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |