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 903 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
914 __ push(r2); // name | 914 __ push(r2); // name |
915 __ push(r0); // value | 915 __ push(r0); // value |
916 | 916 |
917 // Do tail-call to the runtime system. | 917 // Do tail-call to the runtime system. |
918 ExternalReference store_callback_property = | 918 ExternalReference store_callback_property = |
919 ExternalReference(IC_Utility(IC::kStoreCallbackProperty)); | 919 ExternalReference(IC_Utility(IC::kStoreCallbackProperty)); |
920 __ TailCallRuntime(store_callback_property, 4, 1); | 920 __ TailCallRuntime(store_callback_property, 4, 1); |
921 | 921 |
922 // Handle store cache miss. | 922 // Handle store cache miss. |
923 __ bind(&miss); | 923 __ bind(&miss); |
924 __ mov(r2, Operand(Handle<String>(name))); // restore name | |
925 Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Miss)); | 924 Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Miss)); |
926 __ Jump(ic, RelocInfo::CODE_TARGET); | 925 __ Jump(ic, RelocInfo::CODE_TARGET); |
927 | 926 |
928 // Return the generated code. | 927 // Return the generated code. |
929 return GetCode(CALLBACKS, name); | 928 return GetCode(CALLBACKS, name); |
930 } | 929 } |
931 | 930 |
932 | 931 |
933 Object* StoreStubCompiler::CompileStoreInterceptor(JSObject* receiver, | 932 Object* StoreStubCompiler::CompileStoreInterceptor(JSObject* receiver, |
934 String* name) { | 933 String* name) { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
966 __ push(r2); // name | 965 __ push(r2); // name |
967 __ push(r0); // value | 966 __ push(r0); // value |
968 | 967 |
969 // Do tail-call to the runtime system. | 968 // Do tail-call to the runtime system. |
970 ExternalReference store_ic_property = | 969 ExternalReference store_ic_property = |
971 ExternalReference(IC_Utility(IC::kStoreInterceptorProperty)); | 970 ExternalReference(IC_Utility(IC::kStoreInterceptorProperty)); |
972 __ TailCallRuntime(store_ic_property, 3, 1); | 971 __ TailCallRuntime(store_ic_property, 3, 1); |
973 | 972 |
974 // Handle store cache miss. | 973 // Handle store cache miss. |
975 __ bind(&miss); | 974 __ bind(&miss); |
976 __ mov(r2, Operand(Handle<String>(name))); // restore name | |
977 Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Miss)); | 975 Handle<Code> ic(Builtins::builtin(Builtins::StoreIC_Miss)); |
978 __ Jump(ic, RelocInfo::CODE_TARGET); | 976 __ Jump(ic, RelocInfo::CODE_TARGET); |
979 | 977 |
980 // Return the generated code. | 978 // Return the generated code. |
981 return GetCode(INTERCEPTOR, name); | 979 return GetCode(INTERCEPTOR, name); |
982 } | 980 } |
983 | 981 |
984 | 982 |
985 Object* StoreStubCompiler::CompileStoreGlobal(GlobalObject* object, | 983 Object* StoreStubCompiler::CompileStoreGlobal(GlobalObject* object, |
986 JSGlobalPropertyCell* cell, | 984 JSGlobalPropertyCell* cell, |
(...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1522 __ Jump(generic_construct_stub, RelocInfo::CODE_TARGET); | 1520 __ Jump(generic_construct_stub, RelocInfo::CODE_TARGET); |
1523 | 1521 |
1524 // Return the generated code. | 1522 // Return the generated code. |
1525 return GetCode(); | 1523 return GetCode(); |
1526 } | 1524 } |
1527 | 1525 |
1528 | 1526 |
1529 #undef __ | 1527 #undef __ |
1530 | 1528 |
1531 } } // namespace v8::internal | 1529 } } // namespace v8::internal |
OLD | NEW |