Lines Matching refs:Code
6 // * Redistributions of source code must retain the above copyright
39 // inline caching code. The argument for the macro, ICU, is the function name.
70 // The ids for utility called from the generated code.
81 // Alias the inline cache state type to make the IC code more readable.
84 // The IC code is either invoked with no extra frames on the stack
97 Code* target() const { return GetTargetAtAddress(address()); }
103 static State StateFrom(Code* target, Object* receiver, Object* name);
109 // operation as it has to search through the heap to find the code
128 // Determines which map must be used for keeping the code stub.
143 // Computes the address in the original code when the code running is
149 void set_target(Code* code) { SetTargetAtAddress(address(), code); }
157 Code* new_target);
165 // Access the target code for the given IC address.
166 static inline Code* GetTargetAtAddress(Address address);
167 static inline void SetTargetAtAddress(Address address, Code* target);
168 static void PostPatching(Address address, Code* target, Code* old_target);
175 // to make the code GC safe. This feature is crucial since
209 Code::ExtraICState extra_ic_state,
214 CallICBase(Code::Kind kind, Isolate* isolate)
219 Code::ExtraICState* extra_ic_state);
222 Handle<Code> ComputeMonomorphicStub(LookupResult* lookup,
224 Code::ExtraICState extra_state,
232 Code::ExtraICState extra_ic_state,
243 static void Clear(Address address, Code* target);
245 // Platform-specific code generation functions used by both call and
250 Code::ExtraICState extra_state);
256 Code::Kind kind,
257 Code::ExtraICState extra_state);
259 Code::Kind kind_;
267 explicit CallIC(Isolate* isolate) : CallICBase(Code::CALL_IC, isolate) {
271 // Code generator routines.
274 Code::ExtraICState extra_state) {
280 Code::ExtraICState extra_state) {
286 Code::ExtraICState extra_ic_state);
290 GenerateMiss(masm, argc, Code::kNoExtraICState);
298 : CallICBase(Code::KEYED_CALL_IC, isolate) {
306 // Code generator routines.
313 Code::kNoExtraICState);
332 // Code generator routines.
341 // Specialized code generator routines.
356 Handle<Code> megamorphic_stub() {
359 static Code* initialize_stub() {
363 Handle<Code> pre_monomorphic_stub() {
367 static void Clear(Address address, Code* target);
418 virtual Handle<Code> GetElementStubWithoutMapCheck(
424 virtual Handle<Code> string_stub() {
425 return Handle<Code>::null();
428 virtual Code::Kind kind() const = 0;
430 Handle<Code> ComputeStub(Handle<JSObject> receiver,
433 Handle<Code> default_stub);
435 virtual Handle<Code> ComputePolymorphicStub(
440 Handle<Code> ComputeMonomorphicStubWithoutMapCheck(
446 void GetReceiverMapsForStub(Handle<Code> stub, MapHandleList* result);
448 Handle<Code> ComputeMonomorphicStub(Handle<JSObject> receiver,
451 Handle<Code> default_stub);
478 // Code generator routines.
499 virtual Handle<Code> GetElementStubWithoutMapCheck(
509 virtual Code::Kind kind() const { return Code::KEYED_LOAD_IC; }
511 virtual Handle<Code> ComputePolymorphicStub(MapHandleList* receiver_maps,
515 virtual Handle<Code> string_stub() {
527 static Code* initialize_stub() {
531 Handle<Code> megamorphic_stub() {
534 Handle<Code> generic_stub() const {
537 Handle<Code> pre_monomorphic_stub() {
540 Handle<Code> indexed_interceptor_stub() {
543 Handle<Code> non_strict_arguments_stub() {
547 static void Clear(Address address, Code* target);
565 // Code generators for stub routines. Only called once at startup.
585 void set_target(Code* code) {
587 ASSERT(Code::GetStrictMode(code->extra_ic_state()) ==
588 Code::GetStrictMode(target()->extra_ic_state()));
589 IC::set_target(code);
593 Code* megamorphic_stub() {
597 Code* megamorphic_stub_strict() {
601 static Code* initialize_stub() {
605 static Code* initialize_stub_strict() {
609 Handle<Code> global_proxy_stub() {
612 Handle<Code> global_proxy_stub_strict() {
616 static void Clear(Address address, Code* target);
635 // Code generators for stub routines. Only called once at startup.
648 virtual Handle<Code> GetElementStubWithoutMapCheck(
659 virtual Code::Kind kind() const { return Code::KEYED_STORE_IC; }
661 virtual Handle<Code> ComputePolymorphicStub(MapHandleList* receiver_maps,
674 void set_target(Code* code) {
676 ASSERT(Code::GetStrictMode(code->extra_ic_state()) ==
677 Code::GetStrictMode(target()->extra_ic_state()));
678 IC::set_target(code);
682 static Code* initialize_stub() {
686 static Code* initialize_stub_strict() {
690 Handle<Code> megamorphic_stub() {
693 Handle<Code> megamorphic_stub_strict() {
696 Handle<Code> generic_stub() const {
699 Handle<Code> generic_stub_strict() const {
702 Handle<Code> non_strict_arguments_stub() {
706 static void Clear(Address address, Code* target);
729 void patch(Code* code);
757 void patch(Code* code);
789 static Handle<Code> GetUninitialized(Token::Value op);
795 static State ComputeState(Code* target);
815 void patch(Code* code);