Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(194)

Side by Side Diff: src/arm/macro-assembler-arm.h

Issue 6250126: ARM: Add support for and, or and xor to the type recording binary op stub. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/arm/lithium-arm.cc ('k') | src/arm/macro-assembler-arm.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 571 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 // Load the value of a smi object into a VFP double register. The register 582 // Load the value of a smi object into a VFP double register. The register
583 // scratch1 can be the same register as smi in which case smi will hold the 583 // scratch1 can be the same register as smi in which case smi will hold the
584 // untagged value afterwards. 584 // untagged value afterwards.
585 void SmiToDoubleVFPRegister(Register smi, 585 void SmiToDoubleVFPRegister(Register smi,
586 DwVfpRegister value, 586 DwVfpRegister value,
587 Register scratch1, 587 Register scratch1,
588 SwVfpRegister scratch2); 588 SwVfpRegister scratch2);
589 589
590 // Convert the HeapNumber pointed to by source to a 32bits signed integer 590 // Convert the HeapNumber pointed to by source to a 32bits signed integer
591 // dest. If the HeapNumber does not fit into a 32bits signed integer branch 591 // dest. If the HeapNumber does not fit into a 32bits signed integer branch
592 // to not_int32 label. 592 // to not_int32 label. If VFP3 is available double_scratch is used but not
593 // scratch2.
593 void ConvertToInt32(Register source, 594 void ConvertToInt32(Register source,
594 Register dest, 595 Register dest,
595 Register scratch, 596 Register scratch,
596 Register scratch2, 597 Register scratch2,
598 DwVfpRegister double_scratch,
597 Label *not_int32); 599 Label *not_int32);
598 600
599 // Count leading zeros in a 32 bit word. On ARM5 and later it uses the clz 601 // Count leading zeros in a 32 bit word. On ARM5 and later it uses the clz
600 // instruction. On pre-ARM5 hardware this routine gives the wrong answer 602 // instruction. On pre-ARM5 hardware this routine gives the wrong answer
601 // for 0 (31 instead of 32). Source and scratch can be the same in which case 603 // for 0 (31 instead of 32). Source and scratch can be the same in which case
602 // the source is clobbered. Source and zeros can also be the same in which 604 // the source is clobbered. Source and zeros can also be the same in which
603 // case scratch should be a different register. 605 // case scratch should be a different register.
604 void CountLeadingZeros(Register zeros, 606 void CountLeadingZeros(Register zeros,
605 Register source, 607 Register source,
606 Register scratch); 608 Register scratch);
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 } 758 }
757 // Jump if either of the registers contain a non-smi. 759 // Jump if either of the registers contain a non-smi.
758 void JumpIfNotBothSmi(Register reg1, Register reg2, Label* on_not_both_smi); 760 void JumpIfNotBothSmi(Register reg1, Register reg2, Label* on_not_both_smi);
759 // Jump if either of the registers contain a smi. 761 // Jump if either of the registers contain a smi.
760 void JumpIfEitherSmi(Register reg1, Register reg2, Label* on_either_smi); 762 void JumpIfEitherSmi(Register reg1, Register reg2, Label* on_either_smi);
761 763
762 // Abort execution if argument is a smi. Used in debug code. 764 // Abort execution if argument is a smi. Used in debug code.
763 void AbortIfSmi(Register object); 765 void AbortIfSmi(Register object);
764 void AbortIfNotSmi(Register object); 766 void AbortIfNotSmi(Register object);
765 767
768 // Abort execution if argument is not the root value with the given index.
769 void AbortIfNotRootValue(Register src,
770 Heap::RootListIndex root_value_index,
771 const char* message);
772
766 // --------------------------------------------------------------------------- 773 // ---------------------------------------------------------------------------
767 // HeapNumber utilities 774 // HeapNumber utilities
768 775
769 void JumpIfNotHeapNumber(Register object, 776 void JumpIfNotHeapNumber(Register object,
770 Register heap_number_map, 777 Register heap_number_map,
771 Register scratch, 778 Register scratch,
772 Label* on_not_heap_number); 779 Label* on_not_heap_number);
773 780
774 // --------------------------------------------------------------------------- 781 // ---------------------------------------------------------------------------
775 // String utilities 782 // String utilities
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
904 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 911 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
905 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 912 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
906 #else 913 #else
907 #define ACCESS_MASM(masm) masm-> 914 #define ACCESS_MASM(masm) masm->
908 #endif 915 #endif
909 916
910 917
911 } } // namespace v8::internal 918 } } // namespace v8::internal
912 919
913 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ 920 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_
OLDNEW
« no previous file with comments | « src/arm/lithium-arm.cc ('k') | src/arm/macro-assembler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698