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 4578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4589 __ stop("Unreachable"); | 4589 __ stop("Unreachable"); |
4590 } | 4590 } |
4591 | 4591 |
4592 | 4592 |
4593 void StackCheckStub::Generate(MacroAssembler* masm) { | 4593 void StackCheckStub::Generate(MacroAssembler* masm) { |
4594 Label within_limit; | 4594 Label within_limit; |
4595 __ mov(ip, Operand(ExternalReference::address_of_stack_guard_limit())); | 4595 __ mov(ip, Operand(ExternalReference::address_of_stack_guard_limit())); |
4596 __ ldr(ip, MemOperand(ip)); | 4596 __ ldr(ip, MemOperand(ip)); |
4597 __ cmp(sp, Operand(ip)); | 4597 __ cmp(sp, Operand(ip)); |
4598 __ b(hs, &within_limit); | 4598 __ b(hs, &within_limit); |
4599 // Do tail-call to runtime routine. | 4599 // Do tail-call to runtime routine. Runtime routines expect at least one |
| 4600 // argument, so give it a Smi. |
| 4601 __ mov(r0, Operand(Smi::FromInt(0))); |
4600 __ push(r0); | 4602 __ push(r0); |
4601 __ TailCallRuntime(ExternalReference(Runtime::kStackGuard), 1); | 4603 __ TailCallRuntime(ExternalReference(Runtime::kStackGuard), 1); |
4602 __ bind(&within_limit); | 4604 __ bind(&within_limit); |
4603 | 4605 |
4604 __ StubReturn(1); | 4606 __ StubReturn(1); |
4605 } | 4607 } |
4606 | 4608 |
4607 | 4609 |
4608 void UnarySubStub::Generate(MacroAssembler* masm) { | 4610 void UnarySubStub::Generate(MacroAssembler* masm) { |
4609 Label undo; | 4611 Label undo; |
(...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5142 __ mov(r2, Operand(0)); | 5144 __ mov(r2, Operand(0)); |
5143 __ GetBuiltinEntry(r3, Builtins::CALL_NON_FUNCTION); | 5145 __ GetBuiltinEntry(r3, Builtins::CALL_NON_FUNCTION); |
5144 __ Jump(Handle<Code>(Builtins::builtin(Builtins::ArgumentsAdaptorTrampoline)), | 5146 __ Jump(Handle<Code>(Builtins::builtin(Builtins::ArgumentsAdaptorTrampoline)), |
5145 RelocInfo::CODE_TARGET); | 5147 RelocInfo::CODE_TARGET); |
5146 } | 5148 } |
5147 | 5149 |
5148 | 5150 |
5149 #undef __ | 5151 #undef __ |
5150 | 5152 |
5151 } } // namespace v8::internal | 5153 } } // namespace v8::internal |
OLD | NEW |