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 5872 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5883 // Enter the exit frame that transitions from JavaScript to C++. | 5883 // Enter the exit frame that transitions from JavaScript to C++. |
5884 __ EnterExitFrame(frame_type); | 5884 __ EnterExitFrame(frame_type); |
5885 | 5885 |
5886 // r4: number of arguments (C callee-saved) | 5886 // r4: number of arguments (C callee-saved) |
5887 // r5: pointer to builtin function (C callee-saved) | 5887 // r5: pointer to builtin function (C callee-saved) |
5888 // r6: pointer to first argument (C callee-saved) | 5888 // r6: pointer to first argument (C callee-saved) |
5889 | 5889 |
5890 Label throw_out_of_memory_exception; | 5890 Label throw_out_of_memory_exception; |
5891 Label throw_normal_exception; | 5891 Label throw_normal_exception; |
5892 | 5892 |
5893 // Call into the runtime system. Collect garbage before the call if | 5893 // Call into the runtime system. |
5894 // running with --gc-greedy set. | |
5895 if (FLAG_gc_greedy) { | |
5896 Failure* failure = Failure::RetryAfterGC(0); | |
5897 __ mov(r0, Operand(reinterpret_cast<intptr_t>(failure))); | |
5898 } | |
5899 GenerateCore(masm, &throw_normal_exception, | 5894 GenerateCore(masm, &throw_normal_exception, |
5900 &throw_out_of_memory_exception, | 5895 &throw_out_of_memory_exception, |
5901 frame_type, | 5896 frame_type, |
5902 FLAG_gc_greedy, | 5897 false, |
5903 false); | 5898 false); |
5904 | 5899 |
5905 // Do space-specific GC and retry runtime call. | 5900 // Do space-specific GC and retry runtime call. |
5906 GenerateCore(masm, | 5901 GenerateCore(masm, |
5907 &throw_normal_exception, | 5902 &throw_normal_exception, |
5908 &throw_out_of_memory_exception, | 5903 &throw_out_of_memory_exception, |
5909 frame_type, | 5904 frame_type, |
5910 true, | 5905 true, |
5911 false); | 5906 false); |
5912 | 5907 |
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6233 int CompareStub::MinorKey() { | 6228 int CompareStub::MinorKey() { |
6234 // Encode the two parameters in a unique 16 bit value. | 6229 // Encode the two parameters in a unique 16 bit value. |
6235 ASSERT(static_cast<unsigned>(cc_) >> 28 < (1 << 15)); | 6230 ASSERT(static_cast<unsigned>(cc_) >> 28 < (1 << 15)); |
6236 return (static_cast<unsigned>(cc_) >> 27) | (strict_ ? 1 : 0); | 6231 return (static_cast<unsigned>(cc_) >> 27) | (strict_ ? 1 : 0); |
6237 } | 6232 } |
6238 | 6233 |
6239 | 6234 |
6240 #undef __ | 6235 #undef __ |
6241 | 6236 |
6242 } } // namespace v8::internal | 6237 } } // namespace v8::internal |
OLD | NEW |