OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
8 | 8 |
9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 1943 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1954 | 1954 |
1955 __ Ret(); | 1955 __ Ret(); |
1956 | 1956 |
1957 // Do the runtime call to allocate the arguments object. | 1957 // Do the runtime call to allocate the arguments object. |
1958 __ Bind(&runtime); | 1958 __ Bind(&runtime); |
1959 __ Push(function, recv_arg, arg_count_smi); | 1959 __ Push(function, recv_arg, arg_count_smi); |
1960 __ TailCallRuntime(Runtime::kNewSloppyArguments, 3, 1); | 1960 __ TailCallRuntime(Runtime::kNewSloppyArguments, 3, 1); |
1961 } | 1961 } |
1962 | 1962 |
1963 | 1963 |
| 1964 void LoadIndexedInterceptorStub::Generate(MacroAssembler* masm) { |
| 1965 // Return address is in lr. |
| 1966 Label slow; |
| 1967 |
| 1968 Register receiver = LoadDescriptor::ReceiverRegister(); |
| 1969 Register key = LoadDescriptor::NameRegister(); |
| 1970 |
| 1971 // Check that the key is an array index, that is Uint32. |
| 1972 __ TestAndBranchIfAnySet(key, kSmiTagMask | kSmiSignMask, &slow); |
| 1973 |
| 1974 // Everything is fine, call runtime. |
| 1975 __ Push(receiver, key); |
| 1976 __ TailCallExternalReference( |
| 1977 ExternalReference(IC_Utility(IC::kLoadElementWithInterceptor), |
| 1978 masm->isolate()), |
| 1979 2, 1); |
| 1980 |
| 1981 __ Bind(&slow); |
| 1982 PropertyAccessCompiler::TailCallBuiltin( |
| 1983 masm, PropertyAccessCompiler::MissBuiltin(Code::KEYED_LOAD_IC)); |
| 1984 } |
| 1985 |
| 1986 |
1964 void ArgumentsAccessStub::GenerateNewStrict(MacroAssembler* masm) { | 1987 void ArgumentsAccessStub::GenerateNewStrict(MacroAssembler* masm) { |
1965 // Stack layout on entry. | 1988 // Stack layout on entry. |
1966 // jssp[0]: number of parameters (tagged) | 1989 // jssp[0]: number of parameters (tagged) |
1967 // jssp[8]: address of receiver argument | 1990 // jssp[8]: address of receiver argument |
1968 // jssp[16]: function | 1991 // jssp[16]: function |
1969 // | 1992 // |
1970 // Returns pointer to result object in x0. | 1993 // Returns pointer to result object in x0. |
1971 | 1994 |
1972 // Get the stub arguments from the frame, and make an untagged copy of the | 1995 // Get the stub arguments from the frame, and make an untagged copy of the |
1973 // parameter count. | 1996 // parameter count. |
(...skipping 3075 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5049 MemOperand(fp, 6 * kPointerSize), | 5072 MemOperand(fp, 6 * kPointerSize), |
5050 NULL); | 5073 NULL); |
5051 } | 5074 } |
5052 | 5075 |
5053 | 5076 |
5054 #undef __ | 5077 #undef __ |
5055 | 5078 |
5056 } } // namespace v8::internal | 5079 } } // namespace v8::internal |
5057 | 5080 |
5058 #endif // V8_TARGET_ARCH_ARM64 | 5081 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |