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 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 // -- r1 : function | 258 // -- r1 : function |
259 // ----------------------------------- | 259 // ----------------------------------- |
260 Generate_DebugBreakCallHelper(masm, r1.bit(), 0); | 260 Generate_DebugBreakCallHelper(masm, r1.bit(), 0); |
261 } | 261 } |
262 | 262 |
263 | 263 |
264 void Debug::GenerateCallFunctionStubRecordDebugBreak(MacroAssembler* masm) { | 264 void Debug::GenerateCallFunctionStubRecordDebugBreak(MacroAssembler* masm) { |
265 // Register state for CallFunctionStub (from code-stubs-arm.cc). | 265 // Register state for CallFunctionStub (from code-stubs-arm.cc). |
266 // ----------- S t a t e ------------- | 266 // ----------- S t a t e ------------- |
267 // -- r1 : function | 267 // -- r1 : function |
268 // -- r2 : cache cell for call target | 268 // -- r2 : feedback array |
| 269 // -- r3 : slot in feedback array |
269 // ----------------------------------- | 270 // ----------------------------------- |
270 Generate_DebugBreakCallHelper(masm, r1.bit() | r2.bit(), 0); | 271 Generate_DebugBreakCallHelper(masm, r1.bit() | r2.bit() | r3.bit(), 0); |
271 } | 272 } |
272 | 273 |
273 | 274 |
274 void Debug::GenerateCallConstructStubDebugBreak(MacroAssembler* masm) { | 275 void Debug::GenerateCallConstructStubDebugBreak(MacroAssembler* masm) { |
275 // Calling convention for CallConstructStub (from code-stubs-arm.cc) | 276 // Calling convention for CallConstructStub (from code-stubs-arm.cc) |
276 // ----------- S t a t e ------------- | 277 // ----------- S t a t e ------------- |
277 // -- r0 : number of arguments (not smi) | 278 // -- r0 : number of arguments (not smi) |
278 // -- r1 : constructor function | 279 // -- r1 : constructor function |
279 // ----------------------------------- | 280 // ----------------------------------- |
280 Generate_DebugBreakCallHelper(masm, r1.bit(), r0.bit()); | 281 Generate_DebugBreakCallHelper(masm, r1.bit(), r0.bit()); |
281 } | 282 } |
282 | 283 |
283 | 284 |
284 void Debug::GenerateCallConstructStubRecordDebugBreak(MacroAssembler* masm) { | 285 void Debug::GenerateCallConstructStubRecordDebugBreak(MacroAssembler* masm) { |
285 // Calling convention for CallConstructStub (from code-stubs-arm.cc) | 286 // Calling convention for CallConstructStub (from code-stubs-arm.cc) |
286 // ----------- S t a t e ------------- | 287 // ----------- S t a t e ------------- |
287 // -- r0 : number of arguments (not smi) | 288 // -- r0 : number of arguments (not smi) |
288 // -- r1 : constructor function | 289 // -- r1 : constructor function |
289 // -- r2 : cache cell for call target | 290 // -- r2 : feedback array |
| 291 // -- r3 : feedback slot (smi) |
290 // ----------------------------------- | 292 // ----------------------------------- |
291 Generate_DebugBreakCallHelper(masm, r1.bit() | r2.bit(), r0.bit()); | 293 Generate_DebugBreakCallHelper(masm, r1.bit() | r2.bit() | r3.bit(), r0.bit()); |
292 } | 294 } |
293 | 295 |
294 | 296 |
295 void Debug::GenerateSlot(MacroAssembler* masm) { | 297 void Debug::GenerateSlot(MacroAssembler* masm) { |
296 // Generate enough nop's to make space for a call instruction. Avoid emitting | 298 // Generate enough nop's to make space for a call instruction. Avoid emitting |
297 // the constant pool in the debug break slot code. | 299 // the constant pool in the debug break slot code. |
298 Assembler::BlockConstPoolScope block_const_pool(masm); | 300 Assembler::BlockConstPoolScope block_const_pool(masm); |
299 Label check_codesize; | 301 Label check_codesize; |
300 __ bind(&check_codesize); | 302 __ bind(&check_codesize); |
301 __ RecordDebugBreakSlot(); | 303 __ RecordDebugBreakSlot(); |
(...skipping 25 matching lines...) Expand all Loading... |
327 | 329 |
328 #undef __ | 330 #undef __ |
329 | 331 |
330 | 332 |
331 | 333 |
332 #endif // ENABLE_DEBUGGER_SUPPORT | 334 #endif // ENABLE_DEBUGGER_SUPPORT |
333 | 335 |
334 } } // namespace v8::internal | 336 } } // namespace v8::internal |
335 | 337 |
336 #endif // V8_TARGET_ARCH_ARM | 338 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |