OLD | NEW |
---|---|
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 642 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
653 Register scratch4); | 653 Register scratch4); |
654 | 654 |
655 private: | 655 private: |
656 Major MajorKey() { return StringCompare; } | 656 Major MajorKey() { return StringCompare; } |
657 int MinorKey() { return 0; } | 657 int MinorKey() { return 0; } |
658 | 658 |
659 void Generate(MacroAssembler* masm); | 659 void Generate(MacroAssembler* masm); |
660 }; | 660 }; |
661 | 661 |
662 | 662 |
663 // This stub can convert a signed int32 to a heap number (double). It does | |
664 // not work for int32s that are in Smi range! No GC occurs during this stub | |
665 // so you don't have to set up the frame. | |
666 class WriteInt32ToHeapNumberStub : public CodeStub { | |
667 public: | |
668 WriteInt32ToHeapNumberStub(Register the_int, | |
669 Register the_heap_number, | |
670 Register scratch) | |
671 : the_int_(the_int), | |
672 the_heap_number_(the_heap_number), | |
673 scratch_(scratch) { } | |
674 | |
675 private: | |
676 Register the_int_; | |
677 Register the_heap_number_; | |
678 Register scratch_; | |
679 | |
680 // Minor key encoding in 16 bits. | |
Mads Ager (chromium)
2010/03/23 11:46:54
This is not new code, but we do not seem to use th
| |
681 class ModeBits: public BitField<OverwriteMode, 0, 2> {}; | |
682 class OpBits: public BitField<Token::Value, 2, 14> {}; | |
683 | |
684 Major MajorKey() { return WriteInt32ToHeapNumber; } | |
685 int MinorKey() { | |
686 // Encode the parameters in a unique 16 bit value. | |
687 return the_int_.code() + | |
Mads Ager (chromium)
2010/03/23 11:46:54
Please remove extra space.
| |
688 (the_heap_number_.code() << 4) + | |
689 (scratch_.code() << 8); | |
690 } | |
691 | |
692 void Generate(MacroAssembler* masm); | |
693 | |
694 const char* GetName() { return "WriteInt32ToHeapNumberStub"; } | |
695 | |
696 #ifdef DEBUG | |
697 void Print() { PrintF("WriteInt32ToHeapNumberStub\n"); } | |
698 #endif | |
699 }; | |
700 | |
701 | |
663 } } // namespace v8::internal | 702 } } // namespace v8::internal |
664 | 703 |
665 #endif // V8_ARM_CODEGEN_ARM_H_ | 704 #endif // V8_ARM_CODEGEN_ARM_H_ |
OLD | NEW |