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 845 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
856 LOG(CodeCreateEvent(Logger::CALL_INITIALIZE_TAG, | 856 LOG(CodeCreateEvent(Logger::CALL_INITIALIZE_TAG, |
857 code, code->arguments_count())); | 857 code, code->arguments_count())); |
858 } | 858 } |
859 return result; | 859 return result; |
860 } | 860 } |
861 | 861 |
862 | 862 |
863 Object* StubCompiler::CompileCallPreMonomorphic(Code::Flags flags) { | 863 Object* StubCompiler::CompileCallPreMonomorphic(Code::Flags flags) { |
864 HandleScope scope; | 864 HandleScope scope; |
865 int argc = Code::ExtractArgumentsCountFromFlags(flags); | 865 int argc = Code::ExtractArgumentsCountFromFlags(flags); |
| 866 // The code of the PreMonomorphic stub is the same as the code |
| 867 // of the Initialized stub. They just differ on the code object flags. |
866 CallIC::GenerateInitialize(masm(), argc); | 868 CallIC::GenerateInitialize(masm(), argc); |
867 Object* result = GetCodeWithFlags(flags, "CompileCallPreMonomorphic"); | 869 Object* result = GetCodeWithFlags(flags, "CompileCallPreMonomorphic"); |
868 if (!result->IsFailure()) { | 870 if (!result->IsFailure()) { |
869 Counters::call_premonomorphic_stubs.Increment(); | 871 Counters::call_premonomorphic_stubs.Increment(); |
870 Code* code = Code::cast(result); | 872 Code* code = Code::cast(result); |
871 USE(code); | 873 USE(code); |
872 LOG(CodeCreateEvent(Logger::CALL_PRE_MONOMORPHIC_TAG, | 874 LOG(CodeCreateEvent(Logger::CALL_PRE_MONOMORPHIC_TAG, |
873 code, code->arguments_count())); | 875 code, code->arguments_count())); |
874 } | 876 } |
875 return result; | 877 return result; |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1009 int argc = arguments_.immediate(); | 1011 int argc = arguments_.immediate(); |
1010 Code::Flags flags = Code::ComputeMonomorphicFlags(Code::CALL_IC, | 1012 Code::Flags flags = Code::ComputeMonomorphicFlags(Code::CALL_IC, |
1011 type, | 1013 type, |
1012 in_loop_, | 1014 in_loop_, |
1013 argc); | 1015 argc); |
1014 return GetCodeWithFlags(flags, name); | 1016 return GetCodeWithFlags(flags, name); |
1015 } | 1017 } |
1016 | 1018 |
1017 | 1019 |
1018 } } // namespace v8::internal | 1020 } } // namespace v8::internal |
OLD | NEW |