OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
566 // Read a bit field out of the instruction bits. | 566 // Read a bit field out of the instruction bits. |
567 static inline int BitField(Instr instr, int hi, int lo) { | 567 static inline int BitField(Instr instr, int hi, int lo) { |
568 return instr & (((2 << (hi - lo)) - 1) << lo); | 568 return instr & (((2 << (hi - lo)) - 1) << lo); |
569 } | 569 } |
570 | 570 |
571 | 571 |
572 // Accessors for the different named fields used in the ARM encoding. | 572 // Accessors for the different named fields used in the ARM encoding. |
573 // The naming of these accessor corresponds to figure A3-1. | 573 // The naming of these accessor corresponds to figure A3-1. |
574 // | 574 // |
575 // Two kind of accessors are declared: | 575 // Two kind of accessors are declared: |
576 // - <Name>Field() will return the raw field, ie the field's bits at their | 576 // - <Name>Field() will return the raw field, i.e. the field's bits at their |
577 // original place in the instruction encoding. | 577 // original place in the instruction encoding. |
578 // eg. if instr is the 'addgt r0, r1, r2' instruction, encoded as 0xC0810002 | 578 // e.g. if instr is the 'addgt r0, r1, r2' instruction, encoded as |
579 // ConditionField(instr) will return 0xC0000000. | 579 // 0xC0810002 ConditionField(instr) will return 0xC0000000. |
580 // - <Name>Value() will return the field value, shifted back to bit 0. | 580 // - <Name>Value() will return the field value, shifted back to bit 0. |
581 // eg. if instr is the 'addgt r0, r1, r2' instruction, encoded as 0xC0810002 | 581 // e.g. if instr is the 'addgt r0, r1, r2' instruction, encoded as |
582 // ConditionField(instr) will return 0xC. | 582 // 0xC0810002 ConditionField(instr) will return 0xC. |
583 | 583 |
584 | 584 |
585 // Generally applicable fields | 585 // Generally applicable fields |
586 inline Condition ConditionValue() const { | 586 inline Condition ConditionValue() const { |
587 return static_cast<Condition>(Bits(31, 28)); | 587 return static_cast<Condition>(Bits(31, 28)); |
588 } | 588 } |
589 inline Condition ConditionField() const { | 589 inline Condition ConditionField() const { |
590 return static_cast<Condition>(BitField(31, 28)); | 590 return static_cast<Condition>(BitField(31, 28)); |
591 } | 591 } |
592 DECLARE_STATIC_TYPED_ACCESSOR(Condition, ConditionValue); | 592 DECLARE_STATIC_TYPED_ACCESSOR(Condition, ConditionValue); |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
765 static int Number(const char* name, bool* is_double); | 765 static int Number(const char* name, bool* is_double); |
766 | 766 |
767 private: | 767 private: |
768 static const char* names_[kNumVFPRegisters]; | 768 static const char* names_[kNumVFPRegisters]; |
769 }; | 769 }; |
770 | 770 |
771 | 771 |
772 } } // namespace v8::internal | 772 } } // namespace v8::internal |
773 | 773 |
774 #endif // V8_ARM_CONSTANTS_ARM_H_ | 774 #endif // V8_ARM_CONSTANTS_ARM_H_ |
OLD | NEW |