| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 3390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3401 case JSObject::EXTERNAL_UNSIGNED_SHORT_ELEMENTS: | 3401 case JSObject::EXTERNAL_UNSIGNED_SHORT_ELEMENTS: |
| 3402 case JSObject::EXTERNAL_UNSIGNED_INT_ELEMENTS: | 3402 case JSObject::EXTERNAL_UNSIGNED_INT_ELEMENTS: |
| 3403 case JSObject::EXTERNAL_PIXEL_ELEMENTS: | 3403 case JSObject::EXTERNAL_PIXEL_ELEMENTS: |
| 3404 return false; | 3404 return false; |
| 3405 | 3405 |
| 3406 case JSObject::EXTERNAL_FLOAT_ELEMENTS: | 3406 case JSObject::EXTERNAL_FLOAT_ELEMENTS: |
| 3407 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: | 3407 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: |
| 3408 case JSObject::FAST_ELEMENTS: | 3408 case JSObject::FAST_ELEMENTS: |
| 3409 case JSObject::FAST_DOUBLE_ELEMENTS: | 3409 case JSObject::FAST_DOUBLE_ELEMENTS: |
| 3410 case JSObject::DICTIONARY_ELEMENTS: | 3410 case JSObject::DICTIONARY_ELEMENTS: |
| 3411 case JSObject::NON_STRICT_ARGUMENTS_ELEMENTS: |
| 3411 UNREACHABLE(); | 3412 UNREACHABLE(); |
| 3412 return false; | 3413 return false; |
| 3413 } | 3414 } |
| 3414 return false; | 3415 return false; |
| 3415 } | 3416 } |
| 3416 | 3417 |
| 3417 | 3418 |
| 3418 void KeyedLoadStubCompiler::GenerateLoadExternalArray( | 3419 void KeyedLoadStubCompiler::GenerateLoadExternalArray( |
| 3419 MacroAssembler* masm, | 3420 MacroAssembler* masm, |
| 3420 JSObject::ElementsKind elements_kind) { | 3421 JSObject::ElementsKind elements_kind) { |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3495 __ ldc1(f0, MemOperand(t3, 0)); | 3496 __ ldc1(f0, MemOperand(t3, 0)); |
| 3496 } else { | 3497 } else { |
| 3497 // t3: pointer to the beginning of the double we want to load. | 3498 // t3: pointer to the beginning of the double we want to load. |
| 3498 __ lw(a2, MemOperand(t3, 0)); | 3499 __ lw(a2, MemOperand(t3, 0)); |
| 3499 __ lw(a3, MemOperand(t3, Register::kSizeInBytes)); | 3500 __ lw(a3, MemOperand(t3, Register::kSizeInBytes)); |
| 3500 } | 3501 } |
| 3501 break; | 3502 break; |
| 3502 case JSObject::FAST_ELEMENTS: | 3503 case JSObject::FAST_ELEMENTS: |
| 3503 case JSObject::FAST_DOUBLE_ELEMENTS: | 3504 case JSObject::FAST_DOUBLE_ELEMENTS: |
| 3504 case JSObject::DICTIONARY_ELEMENTS: | 3505 case JSObject::DICTIONARY_ELEMENTS: |
| 3506 case JSObject::NON_STRICT_ARGUMENTS_ELEMENTS: |
| 3505 UNREACHABLE(); | 3507 UNREACHABLE(); |
| 3506 break; | 3508 break; |
| 3507 } | 3509 } |
| 3508 | 3510 |
| 3509 // For integer array types: | 3511 // For integer array types: |
| 3510 // a2: value | 3512 // a2: value |
| 3511 // For float array type: | 3513 // For float array type: |
| 3512 // f0: value (if FPU is supported) | 3514 // f0: value (if FPU is supported) |
| 3513 // a2: value (if FPU is not supported) | 3515 // a2: value (if FPU is not supported) |
| 3514 // For double array type: | 3516 // For double array type: |
| (...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3854 CpuFeatures::Scope scope(FPU); | 3856 CpuFeatures::Scope scope(FPU); |
| 3855 __ sdc1(f0, MemOperand(a3, 0)); | 3857 __ sdc1(f0, MemOperand(a3, 0)); |
| 3856 } else { | 3858 } else { |
| 3857 __ sw(t2, MemOperand(a3, 0)); | 3859 __ sw(t2, MemOperand(a3, 0)); |
| 3858 __ sw(t3, MemOperand(a3, Register::kSizeInBytes)); | 3860 __ sw(t3, MemOperand(a3, Register::kSizeInBytes)); |
| 3859 } | 3861 } |
| 3860 break; | 3862 break; |
| 3861 case JSObject::FAST_ELEMENTS: | 3863 case JSObject::FAST_ELEMENTS: |
| 3862 case JSObject::FAST_DOUBLE_ELEMENTS: | 3864 case JSObject::FAST_DOUBLE_ELEMENTS: |
| 3863 case JSObject::DICTIONARY_ELEMENTS: | 3865 case JSObject::DICTIONARY_ELEMENTS: |
| 3866 case JSObject::NON_STRICT_ARGUMENTS_ELEMENTS: |
| 3864 UNREACHABLE(); | 3867 UNREACHABLE(); |
| 3865 break; | 3868 break; |
| 3866 } | 3869 } |
| 3867 | 3870 |
| 3868 // Entry registers are intact, a0 holds the value which is the return value. | 3871 // Entry registers are intact, a0 holds the value which is the return value. |
| 3869 __ mov(v0, value); | 3872 __ mov(v0, value); |
| 3870 __ Ret(); | 3873 __ Ret(); |
| 3871 | 3874 |
| 3872 if (elements_kind != JSObject::EXTERNAL_PIXEL_ELEMENTS) { | 3875 if (elements_kind != JSObject::EXTERNAL_PIXEL_ELEMENTS) { |
| 3873 // a3: external array. | 3876 // a3: external array. |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3919 __ sll(t8, t0, 2); | 3922 __ sll(t8, t0, 2); |
| 3920 __ addu(t8, a3, t8); | 3923 __ addu(t8, a3, t8); |
| 3921 __ sw(t3, MemOperand(t8, 0)); | 3924 __ sw(t3, MemOperand(t8, 0)); |
| 3922 break; | 3925 break; |
| 3923 case JSObject::EXTERNAL_PIXEL_ELEMENTS: | 3926 case JSObject::EXTERNAL_PIXEL_ELEMENTS: |
| 3924 case JSObject::EXTERNAL_FLOAT_ELEMENTS: | 3927 case JSObject::EXTERNAL_FLOAT_ELEMENTS: |
| 3925 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: | 3928 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: |
| 3926 case JSObject::FAST_ELEMENTS: | 3929 case JSObject::FAST_ELEMENTS: |
| 3927 case JSObject::FAST_DOUBLE_ELEMENTS: | 3930 case JSObject::FAST_DOUBLE_ELEMENTS: |
| 3928 case JSObject::DICTIONARY_ELEMENTS: | 3931 case JSObject::DICTIONARY_ELEMENTS: |
| 3932 case JSObject::NON_STRICT_ARGUMENTS_ELEMENTS: |
| 3929 UNREACHABLE(); | 3933 UNREACHABLE(); |
| 3930 break; | 3934 break; |
| 3931 } | 3935 } |
| 3932 } | 3936 } |
| 3933 | 3937 |
| 3934 // Entry registers are intact, a0 holds the value | 3938 // Entry registers are intact, a0 holds the value |
| 3935 // which is the return value. | 3939 // which is the return value. |
| 3936 __ mov(v0, value); | 3940 __ mov(v0, value); |
| 3937 __ Ret(); | 3941 __ Ret(); |
| 3938 } else { | 3942 } else { |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4088 __ sll(t8, t0, 2); | 4092 __ sll(t8, t0, 2); |
| 4089 __ addu(t8, a3, t8); | 4093 __ addu(t8, a3, t8); |
| 4090 __ sw(t3, MemOperand(t8, 0)); | 4094 __ sw(t3, MemOperand(t8, 0)); |
| 4091 break; | 4095 break; |
| 4092 case JSObject::EXTERNAL_PIXEL_ELEMENTS: | 4096 case JSObject::EXTERNAL_PIXEL_ELEMENTS: |
| 4093 case JSObject::EXTERNAL_FLOAT_ELEMENTS: | 4097 case JSObject::EXTERNAL_FLOAT_ELEMENTS: |
| 4094 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: | 4098 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: |
| 4095 case JSObject::FAST_ELEMENTS: | 4099 case JSObject::FAST_ELEMENTS: |
| 4096 case JSObject::FAST_DOUBLE_ELEMENTS: | 4100 case JSObject::FAST_DOUBLE_ELEMENTS: |
| 4097 case JSObject::DICTIONARY_ELEMENTS: | 4101 case JSObject::DICTIONARY_ELEMENTS: |
| 4102 case JSObject::NON_STRICT_ARGUMENTS_ELEMENTS: |
| 4098 UNREACHABLE(); | 4103 UNREACHABLE(); |
| 4099 break; | 4104 break; |
| 4100 } | 4105 } |
| 4101 } | 4106 } |
| 4102 } | 4107 } |
| 4103 } | 4108 } |
| 4104 | 4109 |
| 4105 // Slow case, key and receiver still in a0 and a1. | 4110 // Slow case, key and receiver still in a0 and a1. |
| 4106 __ bind(&slow); | 4111 __ bind(&slow); |
| 4107 __ IncrementCounter( | 4112 __ IncrementCounter( |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4233 masm->isolate()->builtins()->KeyedStoreIC_MissForceGeneric(); | 4238 masm->isolate()->builtins()->KeyedStoreIC_MissForceGeneric(); |
| 4234 __ Jump(ic, RelocInfo::CODE_TARGET); | 4239 __ Jump(ic, RelocInfo::CODE_TARGET); |
| 4235 } | 4240 } |
| 4236 | 4241 |
| 4237 | 4242 |
| 4238 #undef __ | 4243 #undef __ |
| 4239 | 4244 |
| 4240 } } // namespace v8::internal | 4245 } } // namespace v8::internal |
| 4241 | 4246 |
| 4242 #endif // V8_TARGET_ARCH_MIPS | 4247 #endif // V8_TARGET_ARCH_MIPS |
| OLD | NEW |