| OLD | NEW |
| 1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 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 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 } | 276 } |
| 277 | 277 |
| 278 // The receiver frame slot. | 278 // The receiver frame slot. |
| 279 MemOperand Receiver() { return ParameterAt(-1); } | 279 MemOperand Receiver() { return ParameterAt(-1); } |
| 280 | 280 |
| 281 // Push a try-catch or try-finally handler on top of the virtual frame. | 281 // Push a try-catch or try-finally handler on top of the virtual frame. |
| 282 void PushTryHandler(HandlerType type); | 282 void PushTryHandler(HandlerType type); |
| 283 | 283 |
| 284 // Call stub given the number of arguments it expects on (and | 284 // Call stub given the number of arguments it expects on (and |
| 285 // removes from) the stack. | 285 // removes from) the stack. |
| 286 Result CallStub(CodeStub* stub, int arg_count) { | 286 void CallStub(CodeStub* stub, int arg_count) { |
| 287 PrepareForCall(arg_count, arg_count); | 287 PrepareForCall(arg_count, arg_count); |
| 288 return RawCallStub(stub); | 288 RawCallStub(stub); |
| 289 } | 289 } |
| 290 | 290 |
| 291 // Call stub that expects its argument in r0. The argument is given | 291 // Call stub that expects its argument in r0. The argument is given |
| 292 // as a result which must be the register r0. | 292 // as a result which must be the register r0. |
| 293 Result CallStub(CodeStub* stub, Result* arg); | 293 void CallStub(CodeStub* stub, Result* arg); |
| 294 | 294 |
| 295 // Call stub that expects its arguments in r1 and r0. The arguments | 295 // Call stub that expects its arguments in r1 and r0. The arguments |
| 296 // are given as results which must be the appropriate registers. | 296 // are given as results which must be the appropriate registers. |
| 297 Result CallStub(CodeStub* stub, Result* arg0, Result* arg1); | 297 void CallStub(CodeStub* stub, Result* arg0, Result* arg1); |
| 298 | 298 |
| 299 // Call runtime given the number of arguments expected on (and | 299 // Call runtime given the number of arguments expected on (and |
| 300 // removed from) the stack. | 300 // removed from) the stack. |
| 301 Result CallRuntime(Runtime::Function* f, int arg_count); | 301 void CallRuntime(Runtime::Function* f, int arg_count); |
| 302 Result CallRuntime(Runtime::FunctionId id, int arg_count); | 302 void CallRuntime(Runtime::FunctionId id, int arg_count); |
| 303 | 303 |
| 304 // Invoke builtin given the number of arguments it expects on (and | 304 // Invoke builtin given the number of arguments it expects on (and |
| 305 // removes from) the stack. | 305 // removes from) the stack. |
| 306 Result InvokeBuiltin(Builtins::JavaScript id, | 306 void InvokeBuiltin(Builtins::JavaScript id, |
| 307 InvokeJSFlags flag, | 307 InvokeJSFlags flag, |
| 308 Result* arg_count_register, | 308 Result* arg_count_register, |
| 309 int arg_count); | 309 int arg_count); |
| 310 | 310 |
| 311 // Call into an IC stub given the number of arguments it removes | 311 // Call into an IC stub given the number of arguments it removes |
| 312 // from the stack. Register arguments are passed as results and | 312 // from the stack. Register arguments are passed as results and |
| 313 // consumed by the call. | 313 // consumed by the call. |
| 314 Result CallCodeObject(Handle<Code> ic, | 314 void CallCodeObject(Handle<Code> ic, |
| 315 RelocInfo::Mode rmode, | 315 RelocInfo::Mode rmode, |
| 316 int dropped_args); | 316 int dropped_args); |
| 317 Result CallCodeObject(Handle<Code> ic, | 317 void CallCodeObject(Handle<Code> ic, |
| 318 RelocInfo::Mode rmode, | 318 RelocInfo::Mode rmode, |
| 319 Result* arg, | 319 Result* arg, |
| 320 int dropped_args); | 320 int dropped_args); |
| 321 Result CallCodeObject(Handle<Code> ic, | 321 void CallCodeObject(Handle<Code> ic, |
| 322 RelocInfo::Mode rmode, | 322 RelocInfo::Mode rmode, |
| 323 Result* arg0, | 323 Result* arg0, |
| 324 Result* arg1, | 324 Result* arg1, |
| 325 int dropped_args); | 325 int dropped_args); |
| 326 | 326 |
| 327 // Drop a number of elements from the top of the expression stack. May | 327 // Drop a number of elements from the top of the expression stack. May |
| 328 // emit code to affect the physical frame. Does not clobber any registers | 328 // emit code to affect the physical frame. Does not clobber any registers |
| 329 // excepting possibly the stack pointer. | 329 // excepting possibly the stack pointer. |
| 330 void Drop(int count); | 330 void Drop(int count); |
| 331 | 331 |
| 332 // Drop one element. | 332 // Drop one element. |
| 333 void Drop() { Drop(1); } | 333 void Drop() { Drop(1); } |
| 334 | 334 |
| 335 // Duplicate the top element of the frame. | 335 // Duplicate the top element of the frame. |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 499 | 499 |
| 500 // Invalidates a frame slot (puts an invalid frame element in it). | 500 // Invalidates a frame slot (puts an invalid frame element in it). |
| 501 // Copies on the frame are correctly handled, and if this slot was | 501 // Copies on the frame are correctly handled, and if this slot was |
| 502 // the backing store of copies, the index of the new backing store | 502 // the backing store of copies, the index of the new backing store |
| 503 // is returned. Otherwise, returns kIllegalIndex. | 503 // is returned. Otherwise, returns kIllegalIndex. |
| 504 // Register counts are correctly updated. | 504 // Register counts are correctly updated. |
| 505 int InvalidateFrameSlotAt(int index); | 505 int InvalidateFrameSlotAt(int index); |
| 506 | 506 |
| 507 // Call a code stub that has already been prepared for calling (via | 507 // Call a code stub that has already been prepared for calling (via |
| 508 // PrepareForCall). | 508 // PrepareForCall). |
| 509 Result RawCallStub(CodeStub* stub); | 509 void RawCallStub(CodeStub* stub); |
| 510 | 510 |
| 511 // Calls a code object which has already been prepared for calling | 511 // Calls a code object which has already been prepared for calling |
| 512 // (via PrepareForCall). | 512 // (via PrepareForCall). |
| 513 Result RawCallCodeObject(Handle<Code> code, RelocInfo::Mode rmode); | 513 void RawCallCodeObject(Handle<Code> code, RelocInfo::Mode rmode); |
| 514 | 514 |
| 515 bool Equals(VirtualFrame* other); | 515 bool Equals(VirtualFrame* other); |
| 516 | 516 |
| 517 // Classes that need raw access to the elements_ array. | 517 // Classes that need raw access to the elements_ array. |
| 518 friend class DeferredCode; | 518 friend class DeferredCode; |
| 519 friend class JumpTarget; | 519 friend class JumpTarget; |
| 520 }; | 520 }; |
| 521 | 521 |
| 522 | 522 |
| 523 } } // namespace v8::internal | 523 } } // namespace v8::internal |
| 524 | 524 |
| 525 #endif // V8_ARM_VIRTUAL_FRAME_ARM_H_ | 525 #endif // V8_ARM_VIRTUAL_FRAME_ARM_H_ |
| OLD | NEW |