OLD | NEW |
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 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 666 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
677 // Handle call cache miss. | 677 // Handle call cache miss. |
678 __ bind(&miss); | 678 __ bind(&miss); |
679 Handle<Code> ic = ComputeCallMiss(arguments().immediate()); | 679 Handle<Code> ic = ComputeCallMiss(arguments().immediate()); |
680 __ Jump(ic, RelocInfo::CODE_TARGET); | 680 __ Jump(ic, RelocInfo::CODE_TARGET); |
681 | 681 |
682 // Return the generated code. | 682 // Return the generated code. |
683 return GetCode(INTERCEPTOR, name); | 683 return GetCode(INTERCEPTOR, name); |
684 } | 684 } |
685 | 685 |
686 | 686 |
687 Object* CallStubCompiler::CompileCallGlobal(JSGlobalObject* object, | 687 Object* CallStubCompiler::CompileCallGlobal(GlobalObject* object, |
688 JSGlobalPropertyCell* cell, | 688 JSGlobalPropertyCell* cell, |
689 JSFunction* function, | 689 JSFunction* function, |
690 String* name) { | 690 String* name) { |
691 // ----------- S t a t e ------------- | 691 // ----------- S t a t e ------------- |
692 // -- lr: return address | 692 // -- lr: return address |
693 // ----------------------------------- | 693 // ----------------------------------- |
694 Label miss; | 694 Label miss; |
695 | 695 |
696 __ IncrementCounter(&Counters::call_global_inline, 1, r1, r3); | 696 __ IncrementCounter(&Counters::call_global_inline, 1, r1, r3); |
697 | 697 |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
872 __ bind(&miss); | 872 __ bind(&miss); |
873 __ mov(r2, Operand(Handle<String>(name))); // restore name | 873 __ mov(r2, Operand(Handle<String>(name))); // restore name |
874 Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Miss)); | 874 Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Miss)); |
875 __ Jump(ic, RelocInfo::CODE_TARGET); | 875 __ Jump(ic, RelocInfo::CODE_TARGET); |
876 | 876 |
877 // Return the generated code. | 877 // Return the generated code. |
878 return GetCode(INTERCEPTOR, name); | 878 return GetCode(INTERCEPTOR, name); |
879 } | 879 } |
880 | 880 |
881 | 881 |
882 Object* StoreStubCompiler::CompileStoreGlobal(JSGlobalObject* object, | 882 Object* StoreStubCompiler::CompileStoreGlobal(GlobalObject* object, |
883 JSGlobalPropertyCell* cell, | 883 JSGlobalPropertyCell* cell, |
884 String* name) { | 884 String* name) { |
885 // ----------- S t a t e ------------- | 885 // ----------- S t a t e ------------- |
886 // -- r0 : value | 886 // -- r0 : value |
887 // -- r2 : name | 887 // -- r2 : name |
888 // -- lr : return address | 888 // -- lr : return address |
889 // -- [sp] : receiver | 889 // -- [sp] : receiver |
890 // ----------------------------------- | 890 // ----------------------------------- |
891 Label miss; | 891 Label miss; |
892 | 892 |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1005 r1, | 1005 r1, |
1006 &miss); | 1006 &miss); |
1007 __ bind(&miss); | 1007 __ bind(&miss); |
1008 GenerateLoadMiss(masm(), Code::LOAD_IC); | 1008 GenerateLoadMiss(masm(), Code::LOAD_IC); |
1009 | 1009 |
1010 // Return the generated code. | 1010 // Return the generated code. |
1011 return GetCode(INTERCEPTOR, name); | 1011 return GetCode(INTERCEPTOR, name); |
1012 } | 1012 } |
1013 | 1013 |
1014 | 1014 |
1015 Object* LoadStubCompiler::CompileLoadGlobal(JSGlobalObject* object, | 1015 Object* LoadStubCompiler::CompileLoadGlobal(GlobalObject* object, |
1016 JSGlobalPropertyCell* cell, | 1016 JSGlobalPropertyCell* cell, |
1017 String* name, | 1017 String* name, |
1018 bool is_dont_delete) { | 1018 bool is_dont_delete) { |
1019 // ----------- S t a t e ------------- | 1019 // ----------- S t a t e ------------- |
1020 // -- r2 : name | 1020 // -- r2 : name |
1021 // -- lr : return address | 1021 // -- lr : return address |
1022 // -- [sp] : receiver | 1022 // -- [sp] : receiver |
1023 // ----------------------------------- | 1023 // ----------------------------------- |
1024 Label miss; | 1024 Label miss; |
1025 | 1025 |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1263 __ Jump(ic, RelocInfo::CODE_TARGET); | 1263 __ Jump(ic, RelocInfo::CODE_TARGET); |
1264 | 1264 |
1265 // Return the generated code. | 1265 // Return the generated code. |
1266 return GetCode(transition == NULL ? FIELD : MAP_TRANSITION, name); | 1266 return GetCode(transition == NULL ? FIELD : MAP_TRANSITION, name); |
1267 } | 1267 } |
1268 | 1268 |
1269 | 1269 |
1270 #undef __ | 1270 #undef __ |
1271 | 1271 |
1272 } } // namespace v8::internal | 1272 } } // namespace v8::internal |
OLD | NEW |