| 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 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 // Invoke builtin given the number of arguments it expects on (and | 305 // Invoke builtin given the number of arguments it expects on (and |
| 306 // removes from) the stack. | 306 // removes from) the stack. |
| 307 void InvokeBuiltin(Builtins::JavaScript id, | 307 void InvokeBuiltin(Builtins::JavaScript id, |
| 308 InvokeJSFlags flag, | 308 InvokeJSFlags flag, |
| 309 int arg_count); | 309 int arg_count); |
| 310 | 310 |
| 311 // Call load IC. Receiver is on the stack and the property name is in r2. | 311 // Call load IC. Receiver is on the stack and the property name is in r2. |
| 312 // Result is returned in r0. | 312 // Result is returned in r0. |
| 313 void CallLoadIC(RelocInfo::Mode mode); | 313 void CallLoadIC(RelocInfo::Mode mode); |
| 314 | 314 |
| 315 // Call store IC. If the load is contextual, value is found on top of the |
| 316 // frame. If not, value and receiver are on the frame. Both are consumed. |
| 317 // Result is returned in r0. |
| 318 void CallStoreIC(Handle<String> name, bool is_contextual); |
| 319 |
| 315 // Call keyed load IC. Key and receiver are on the stack. Result is returned | 320 // Call keyed load IC. Key and receiver are on the stack. Result is returned |
| 316 // in r0. | 321 // in r0. |
| 317 void CallKeyedLoadIC(); | 322 void CallKeyedLoadIC(); |
| 318 | 323 |
| 319 // Call keyed store IC. Key and receiver are on the stack and the value is in | 324 // Call keyed store IC. Key and receiver are on the stack and the value is in |
| 320 // r0. Result is returned in r0. | 325 // r0. Result is returned in r0. |
| 321 void CallKeyedStoreIC(); | 326 void CallKeyedStoreIC(); |
| 322 | 327 |
| 323 // Call into an IC stub given the number of arguments it removes | 328 // Call into an IC stub given the number of arguments it removes |
| 324 // from the stack. Register arguments to the IC stub are implicit, | 329 // from the stack. Register arguments to the IC stub are implicit, |
| (...skipping 16 matching lines...) Expand all Loading... |
| 341 | 346 |
| 342 // Pop an element from the top of the expression stack. The register | 347 // Pop an element from the top of the expression stack. The register |
| 343 // will be one normally used for the top of stack register allocation | 348 // will be one normally used for the top of stack register allocation |
| 344 // so you can't hold on to it if you push on the stack. | 349 // so you can't hold on to it if you push on the stack. |
| 345 Register PopToRegister(Register but_not_to_this_one = no_reg); | 350 Register PopToRegister(Register but_not_to_this_one = no_reg); |
| 346 | 351 |
| 347 // Look at the top of the stack. The register returned is aliased and | 352 // Look at the top of the stack. The register returned is aliased and |
| 348 // must be copied to a scratch register before modification. | 353 // must be copied to a scratch register before modification. |
| 349 Register Peek(); | 354 Register Peek(); |
| 350 | 355 |
| 356 // Duplicate the top of stack. |
| 357 void Dup(); |
| 358 |
| 351 // Flushes all registers, but it puts a copy of the top-of-stack in r0. | 359 // Flushes all registers, but it puts a copy of the top-of-stack in r0. |
| 352 void SpillAllButCopyTOSToR0(); | 360 void SpillAllButCopyTOSToR0(); |
| 353 | 361 |
| 354 // Flushes all registers, but it puts a copy of the top-of-stack in r1 | 362 // Flushes all registers, but it puts a copy of the top-of-stack in r1 |
| 355 // and the next value on the stack in r0. | 363 // and the next value on the stack in r0. |
| 356 void SpillAllButCopyTOSToR1R0(); | 364 void SpillAllButCopyTOSToR1R0(); |
| 357 | 365 |
| 358 // Pop and save an element from the top of the expression stack and | 366 // Pop and save an element from the top of the expression stack and |
| 359 // emit a corresponding pop instruction. | 367 // emit a corresponding pop instruction. |
| 360 void EmitPop(Register reg); | 368 void EmitPop(Register reg); |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 487 inline bool Equals(VirtualFrame* other); | 495 inline bool Equals(VirtualFrame* other); |
| 488 | 496 |
| 489 friend class JumpTarget; | 497 friend class JumpTarget; |
| 490 friend class DeferredCode; | 498 friend class DeferredCode; |
| 491 }; | 499 }; |
| 492 | 500 |
| 493 | 501 |
| 494 } } // namespace v8::internal | 502 } } // namespace v8::internal |
| 495 | 503 |
| 496 #endif // V8_ARM_VIRTUAL_FRAME_ARM_H_ | 504 #endif // V8_ARM_VIRTUAL_FRAME_ARM_H_ |
| OLD | NEW |