OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 4943 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4954 // ebp: frame pointer (restored after C call) | 4954 // ebp: frame pointer (restored after C call) |
4955 // esp: stack pointer (restored after C call) | 4955 // esp: stack pointer (restored after C call) |
4956 // edi: number of arguments including receiver (C callee-saved) | 4956 // edi: number of arguments including receiver (C callee-saved) |
4957 // esi: argv pointer (C callee-saved) | 4957 // esi: argv pointer (C callee-saved) |
4958 | 4958 |
4959 Label throw_out_of_memory_exception; | 4959 Label throw_out_of_memory_exception; |
4960 Label throw_normal_exception; | 4960 Label throw_normal_exception; |
4961 | 4961 |
4962 #ifdef DEBUG | 4962 #ifdef DEBUG |
4963 if (FLAG_gc_greedy) { | 4963 if (FLAG_gc_greedy) { |
4964 Failure* failure = Failure::RetryAfterGC(0, NEW_SPACE); | 4964 Failure* failure = Failure::RetryAfterGC(0); |
4965 __ mov(Operand(eax), Immediate(reinterpret_cast<int32_t>(failure))); | 4965 __ mov(Operand(eax), Immediate(reinterpret_cast<int32_t>(failure))); |
4966 } | 4966 } |
4967 GenerateCore(masm, &throw_normal_exception, | 4967 GenerateCore(masm, &throw_normal_exception, |
4968 &throw_out_of_memory_exception, | 4968 &throw_out_of_memory_exception, |
4969 frame_type, | 4969 frame_type, |
4970 FLAG_gc_greedy); | 4970 FLAG_gc_greedy); |
4971 #else | 4971 #else |
4972 GenerateCore(masm, | 4972 GenerateCore(masm, |
4973 &throw_normal_exception, | 4973 &throw_normal_exception, |
4974 &throw_out_of_memory_exception, | 4974 &throw_out_of_memory_exception, |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5121 | 5121 |
5122 // Slow-case: Go through the JavaScript implementation. | 5122 // Slow-case: Go through the JavaScript implementation. |
5123 __ bind(&slow); | 5123 __ bind(&slow); |
5124 __ InvokeBuiltin(Builtins::INSTANCE_OF, JUMP_FUNCTION); | 5124 __ InvokeBuiltin(Builtins::INSTANCE_OF, JUMP_FUNCTION); |
5125 } | 5125 } |
5126 | 5126 |
5127 | 5127 |
5128 #undef __ | 5128 #undef __ |
5129 | 5129 |
5130 } } // namespace v8::internal | 5130 } } // namespace v8::internal |
OLD | NEW |