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 407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
418 Label *failure); | 418 Label *failure); |
419 | 419 |
420 // Checks if both objects are sequential ASCII strings and jumps to label | 420 // Checks if both objects are sequential ASCII strings and jumps to label |
421 // if either is not. | 421 // if either is not. |
422 void JumpIfNotBothSequentialAsciiStrings(Register first, | 422 void JumpIfNotBothSequentialAsciiStrings(Register first, |
423 Register second, | 423 Register second, |
424 Register scratch1, | 424 Register scratch1, |
425 Register scratch2, | 425 Register scratch2, |
426 Label* not_flat_ascii_strings); | 426 Label* not_flat_ascii_strings); |
427 | 427 |
| 428 // Checks if both instance types are sequential ASCII strings and jumps to |
| 429 // label if either is not. |
| 430 void JumpIfBothInstanceTypesAreNotSequentialAscii( |
| 431 Register first_object_instance_type, |
| 432 Register second_object_instance_type, |
| 433 Register scratch1, |
| 434 Register scratch2, |
| 435 Label* failure); |
| 436 |
| 437 // Check if instance type is sequential ASCII string and jump to label if |
| 438 // it is not. |
| 439 void JumpIfInstanceTypeIsNotSequentialAscii(Register type, |
| 440 Register scratch, |
| 441 Label* failure); |
| 442 |
| 443 |
428 private: | 444 private: |
429 void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = al); | 445 void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = al); |
430 void Call(intptr_t target, RelocInfo::Mode rmode, Condition cond = al); | 446 void Call(intptr_t target, RelocInfo::Mode rmode, Condition cond = al); |
431 | 447 |
432 // Helper functions for generating invokes. | 448 // Helper functions for generating invokes. |
433 void InvokePrologue(const ParameterCount& expected, | 449 void InvokePrologue(const ParameterCount& expected, |
434 const ParameterCount& actual, | 450 const ParameterCount& actual, |
435 Handle<Code> code_constant, | 451 Handle<Code> code_constant, |
436 Register code_reg, | 452 Register code_reg, |
437 Label* done, | 453 Label* done, |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 502 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
487 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 503 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
488 #else | 504 #else |
489 #define ACCESS_MASM(masm) masm-> | 505 #define ACCESS_MASM(masm) masm-> |
490 #endif | 506 #endif |
491 | 507 |
492 | 508 |
493 } } // namespace v8::internal | 509 } } // namespace v8::internal |
494 | 510 |
495 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 511 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
OLD | NEW |