OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 1078 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1089 // [sp + 2] - saved sp. | 1089 // [sp + 2] - saved sp. |
1090 // [sp + 1] - second word reserved for return value. | 1090 // [sp + 1] - second word reserved for return value. |
1091 // [sp + 0] - first word reserved for return value. | 1091 // [sp + 0] - first word reserved for return value. |
1092 | 1092 |
1093 // a0 will point to the return address, placed by DirectCEntry. | 1093 // a0 will point to the return address, placed by DirectCEntry. |
1094 __ mov(a0, sp); | 1094 __ mov(a0, sp); |
1095 | 1095 |
1096 ExternalReference stack_guard_check = | 1096 ExternalReference stack_guard_check = |
1097 ExternalReference::re_check_stack_guard_state(masm_->isolate()); | 1097 ExternalReference::re_check_stack_guard_state(masm_->isolate()); |
1098 __ li(t9, Operand(stack_guard_check)); | 1098 __ li(t9, Operand(stack_guard_check)); |
1099 DirectCEntryStub stub; | 1099 DirectCEntryStub stub(isolate()); |
1100 stub.GenerateCall(masm_, t9); | 1100 stub.GenerateCall(masm_, t9); |
1101 | 1101 |
1102 // DirectCEntryStub allocated space for the C argument slots so we have to | 1102 // DirectCEntryStub allocated space for the C argument slots so we have to |
1103 // drop them with the return address from the stack with loading saved sp. | 1103 // drop them with the return address from the stack with loading saved sp. |
1104 // At this point stack must look: | 1104 // At this point stack must look: |
1105 // [sp + 7] - empty slot if needed for alignment. | 1105 // [sp + 7] - empty slot if needed for alignment. |
1106 // [sp + 6] - saved sp. | 1106 // [sp + 6] - saved sp. |
1107 // [sp + 5] - second word reserved for return value. | 1107 // [sp + 5] - second word reserved for return value. |
1108 // [sp + 4] - first word reserved for return value. | 1108 // [sp + 4] - first word reserved for return value. |
1109 // [sp + 3] - C argument slot. | 1109 // [sp + 3] - C argument slot. |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1338 } | 1338 } |
1339 | 1339 |
1340 | 1340 |
1341 #undef __ | 1341 #undef __ |
1342 | 1342 |
1343 #endif // V8_INTERPRETED_REGEXP | 1343 #endif // V8_INTERPRETED_REGEXP |
1344 | 1344 |
1345 }} // namespace v8::internal | 1345 }} // namespace v8::internal |
1346 | 1346 |
1347 #endif // V8_TARGET_ARCH_MIPS | 1347 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |