OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_S390_CONSTANTS_S390_H_ | 5 #ifndef V8_S390_CONSTANTS_S390_H_ |
6 #define V8_S390_CONSTANTS_S390_H_ | 6 #define V8_S390_CONSTANTS_S390_H_ |
7 | 7 |
8 // Get the standard printf format macros for C99 stdint types. | 8 // Get the standard printf format macros for C99 stdint types. |
9 #ifndef __STDC_FORMAT_MACROS | 9 #ifndef __STDC_FORMAT_MACROS |
10 #define __STDC_FORMAT_MACROS | 10 #define __STDC_FORMAT_MACROS |
(...skipping 945 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
956 V(llhh, LLHH, 0xE3C6) /* type = RXY_A LOAD LOGICAL HALFWORD HIGH (32<-16) */ \ | 956 V(llhh, LLHH, 0xE3C6) /* type = RXY_A LOAD LOGICAL HALFWORD HIGH (32<-16) */ \ |
957 V(sthh, STHH, 0xE3C7) /* type = RXY_A STORE HALFWORD HIGH (16) */ \ | 957 V(sthh, STHH, 0xE3C7) /* type = RXY_A STORE HALFWORD HIGH (16) */ \ |
958 V(lfhat, LFHAT, 0xE3C8) /* type = RXY_A LOAD HIGH AND TRAP (32H<-32) */ \ | 958 V(lfhat, LFHAT, 0xE3C8) /* type = RXY_A LOAD HIGH AND TRAP (32H<-32) */ \ |
959 V(lfh, LFH, 0xE3CA) /* type = RXY_A LOAD HIGH (32) */ \ | 959 V(lfh, LFH, 0xE3CA) /* type = RXY_A LOAD HIGH (32) */ \ |
960 V(stfh, STFH, 0xE3CB) /* type = RXY_A STORE HIGH (32) */ \ | 960 V(stfh, STFH, 0xE3CB) /* type = RXY_A STORE HIGH (32) */ \ |
961 V(chf, CHF, 0xE3CD) /* type = RXY_A COMPARE HIGH (32) */ \ | 961 V(chf, CHF, 0xE3CD) /* type = RXY_A COMPARE HIGH (32) */ \ |
962 V(clhf, CLHF, 0xE3CF) /* type = RXY_A COMPARE LOGICAL HIGH (32) */ \ | 962 V(clhf, CLHF, 0xE3CF) /* type = RXY_A COMPARE LOGICAL HIGH (32) */ \ |
963 V(ley, LEY, 0xED64) /* type = RXY_A LOAD (short) */ \ | 963 V(ley, LEY, 0xED64) /* type = RXY_A LOAD (short) */ \ |
964 V(ldy, LDY, 0xED65) /* type = RXY_A LOAD (long) */ \ | 964 V(ldy, LDY, 0xED65) /* type = RXY_A LOAD (long) */ \ |
965 V(stey, STEY, 0xED66) /* type = RXY_A STORE (short) */ \ | 965 V(stey, STEY, 0xED66) /* type = RXY_A STORE (short) */ \ |
966 V(stdy, STDY, 0xED67) /* type = RXY_A STORE (long) */ | 966 V(stdy, STDY, 0xED67) /* type = RXY_A STORE (long) */ \ |
| 967 V(msc, MSC, 0xE353) /* type = RSY_A MULTIPLY SINGLE (32) */ \ |
| 968 V(msgc, MSGC, 0xE383) /* type = RSY_A MULTIPLY SINGLE (64) */ |
967 | 969 |
968 #define S390_RXY_B_OPCODE_LIST(V) \ | 970 #define S390_RXY_B_OPCODE_LIST(V) \ |
969 V(pfd, PFD, 0xE336) /* type = RXY_B PREFETCH DATA */ | 971 V(pfd, PFD, 0xE336) /* type = RXY_B PREFETCH DATA */ |
970 | 972 |
971 #define S390_SIY_OPCODE_LIST(V) \ | 973 #define S390_SIY_OPCODE_LIST(V) \ |
972 V(tmy, TMY, 0xEB51) /* type = SIY TEST UNDER MASK */ \ | 974 V(tmy, TMY, 0xEB51) /* type = SIY TEST UNDER MASK */ \ |
973 V(mviy, MVIY, 0xEB52) /* type = SIY MOVE (immediate) */ \ | 975 V(mviy, MVIY, 0xEB52) /* type = SIY MOVE (immediate) */ \ |
974 V(niy, NIY, 0xEB54) /* type = SIY AND (immediate) */ \ | 976 V(niy, NIY, 0xEB54) /* type = SIY AND (immediate) */ \ |
975 V(cliy, CLIY, 0xEB55) /* type = SIY COMPARE LOGICAL (immediate) */ \ | 977 V(cliy, CLIY, 0xEB55) /* type = SIY COMPARE LOGICAL (immediate) */ \ |
976 V(oiy, OIY, 0xEB56) /* type = SIY OR (immediate) */ \ | 978 V(oiy, OIY, 0xEB56) /* type = SIY OR (immediate) */ \ |
(...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1708 S390_RRS_OPCODE_LIST(V) | 1710 S390_RRS_OPCODE_LIST(V) |
1709 | 1711 |
1710 // Opcodes as defined in Appendix B-2 table | 1712 // Opcodes as defined in Appendix B-2 table |
1711 enum Opcode { | 1713 enum Opcode { |
1712 #define DECLARE_OPCODES(name, opcode_name, opcode_value) \ | 1714 #define DECLARE_OPCODES(name, opcode_name, opcode_value) \ |
1713 opcode_name = opcode_value, | 1715 opcode_name = opcode_value, |
1714 S390_OPCODE_LIST(DECLARE_OPCODES) | 1716 S390_OPCODE_LIST(DECLARE_OPCODES) |
1715 #undef DECLARE_OPCODES | 1717 #undef DECLARE_OPCODES |
1716 | 1718 |
1717 BKPT = 0x0001, // GDB Software Breakpoint | 1719 BKPT = 0x0001, // GDB Software Breakpoint |
1718 DUMY = 0xE353 // Special dummy opcode | 1720 DUMY = 0xE352 // Special dummy opcode |
1719 }; | 1721 }; |
1720 | 1722 |
1721 // Instruction encoding bits and masks. | 1723 // Instruction encoding bits and masks. |
1722 enum { | 1724 enum { |
1723 // Instruction encoding bit | 1725 // Instruction encoding bit |
1724 B1 = 1 << 1, | 1726 B1 = 1 << 1, |
1725 B4 = 1 << 4, | 1727 B4 = 1 << 4, |
1726 B5 = 1 << 5, | 1728 B5 = 1 << 5, |
1727 B7 = 1 << 7, | 1729 B7 = 1 << 7, |
1728 B8 = 1 << 8, | 1730 B8 = 1 << 8, |
(...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2373 static int Number(const char* name); | 2375 static int Number(const char* name); |
2374 | 2376 |
2375 private: | 2377 private: |
2376 static const char* names_[kNumDoubleRegisters]; | 2378 static const char* names_[kNumDoubleRegisters]; |
2377 }; | 2379 }; |
2378 | 2380 |
2379 } // namespace internal | 2381 } // namespace internal |
2380 } // namespace v8 | 2382 } // namespace v8 |
2381 | 2383 |
2382 #endif // V8_S390_CONSTANTS_S390_H_ | 2384 #endif // V8_S390_CONSTANTS_S390_H_ |
OLD | NEW |