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

Unified Diff: src/s390/constants-s390.cc

Issue 1893713002: S390: Optimize decoding opcode format by using format table (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Add comment to table Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/s390/constants-s390.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/s390/constants-s390.cc
diff --git a/src/s390/constants-s390.cc b/src/s390/constants-s390.cc
index a958082a8ff5597c9082322e5b1b2866450ac4a1..da53613bc7bbeef5749ee9d5bbedeaa9a682433d 100644
--- a/src/s390/constants-s390.cc
+++ b/src/s390/constants-s390.cc
@@ -9,6 +9,267 @@
namespace v8 {
namespace internal {
+Instruction::OpcodeFormatType Instruction::OpcodeFormatTable[] = {
+ // Based on Figure B-3 in z/Architecture Principles of
+ // Operation.
+ TWO_BYTE_OPCODE, // 0x00
+ TWO_BYTE_OPCODE, // 0x01
+ TWO_BYTE_DISJOINT_OPCODE, // 0x02
+ TWO_BYTE_DISJOINT_OPCODE, // 0x03
+ ONE_BYTE_OPCODE, // 0x04
+ ONE_BYTE_OPCODE, // 0x05
+ ONE_BYTE_OPCODE, // 0x06
+ ONE_BYTE_OPCODE, // 0x07
+ ONE_BYTE_OPCODE, // 0x08
+ ONE_BYTE_OPCODE, // 0x09
+ ONE_BYTE_OPCODE, // 0x0a
+ ONE_BYTE_OPCODE, // 0x0b
+ ONE_BYTE_OPCODE, // 0x0c
+ ONE_BYTE_OPCODE, // 0x0d
+ ONE_BYTE_OPCODE, // 0x0e
+ ONE_BYTE_OPCODE, // 0x0f
+ ONE_BYTE_OPCODE, // 0x10
+ ONE_BYTE_OPCODE, // 0x11
+ ONE_BYTE_OPCODE, // 0x12
+ ONE_BYTE_OPCODE, // 0x13
+ ONE_BYTE_OPCODE, // 0x14
+ ONE_BYTE_OPCODE, // 0x15
+ ONE_BYTE_OPCODE, // 0x16
+ ONE_BYTE_OPCODE, // 0x17
+ ONE_BYTE_OPCODE, // 0x18
+ ONE_BYTE_OPCODE, // 0x19
+ ONE_BYTE_OPCODE, // 0x1a
+ ONE_BYTE_OPCODE, // 0x1b
+ ONE_BYTE_OPCODE, // 0x1c
+ ONE_BYTE_OPCODE, // 0x1d
+ ONE_BYTE_OPCODE, // 0x1e
+ ONE_BYTE_OPCODE, // 0x1f
+ ONE_BYTE_OPCODE, // 0x20
+ ONE_BYTE_OPCODE, // 0x21
+ ONE_BYTE_OPCODE, // 0x22
+ ONE_BYTE_OPCODE, // 0x23
+ ONE_BYTE_OPCODE, // 0x24
+ ONE_BYTE_OPCODE, // 0x25
+ ONE_BYTE_OPCODE, // 0x26
+ ONE_BYTE_OPCODE, // 0x27
+ ONE_BYTE_OPCODE, // 0x28
+ ONE_BYTE_OPCODE, // 0x29
+ ONE_BYTE_OPCODE, // 0x2a
+ ONE_BYTE_OPCODE, // 0x2b
+ ONE_BYTE_OPCODE, // 0x2c
+ ONE_BYTE_OPCODE, // 0x2d
+ ONE_BYTE_OPCODE, // 0x2e
+ ONE_BYTE_OPCODE, // 0x2f
+ ONE_BYTE_OPCODE, // 0x30
+ ONE_BYTE_OPCODE, // 0x31
+ ONE_BYTE_OPCODE, // 0x32
+ ONE_BYTE_OPCODE, // 0x33
+ ONE_BYTE_OPCODE, // 0x34
+ ONE_BYTE_OPCODE, // 0x35
+ ONE_BYTE_OPCODE, // 0x36
+ ONE_BYTE_OPCODE, // 0x37
+ ONE_BYTE_OPCODE, // 0x38
+ ONE_BYTE_OPCODE, // 0x39
+ ONE_BYTE_OPCODE, // 0x3a
+ ONE_BYTE_OPCODE, // 0x3b
+ ONE_BYTE_OPCODE, // 0x3c
+ ONE_BYTE_OPCODE, // 0x3d
+ ONE_BYTE_OPCODE, // 0x3e
+ ONE_BYTE_OPCODE, // 0x3f
+ ONE_BYTE_OPCODE, // 0x40
+ ONE_BYTE_OPCODE, // 0x41
+ ONE_BYTE_OPCODE, // 0x42
+ ONE_BYTE_OPCODE, // 0x43
+ ONE_BYTE_OPCODE, // 0x44
+ ONE_BYTE_OPCODE, // 0x45
+ ONE_BYTE_OPCODE, // 0x46
+ ONE_BYTE_OPCODE, // 0x47
+ ONE_BYTE_OPCODE, // 0x48
+ ONE_BYTE_OPCODE, // 0x49
+ ONE_BYTE_OPCODE, // 0x4a
+ ONE_BYTE_OPCODE, // 0x4b
+ ONE_BYTE_OPCODE, // 0x4c
+ ONE_BYTE_OPCODE, // 0x4d
+ ONE_BYTE_OPCODE, // 0x4e
+ ONE_BYTE_OPCODE, // 0x4f
+ ONE_BYTE_OPCODE, // 0x50
+ ONE_BYTE_OPCODE, // 0x51
+ ONE_BYTE_OPCODE, // 0x52
+ ONE_BYTE_OPCODE, // 0x53
+ ONE_BYTE_OPCODE, // 0x54
+ ONE_BYTE_OPCODE, // 0x55
+ ONE_BYTE_OPCODE, // 0x56
+ ONE_BYTE_OPCODE, // 0x57
+ ONE_BYTE_OPCODE, // 0x58
+ ONE_BYTE_OPCODE, // 0x59
+ ONE_BYTE_OPCODE, // 0x5a
+ ONE_BYTE_OPCODE, // 0x5b
+ ONE_BYTE_OPCODE, // 0x5c
+ ONE_BYTE_OPCODE, // 0x5d
+ ONE_BYTE_OPCODE, // 0x5e
+ ONE_BYTE_OPCODE, // 0x5f
+ ONE_BYTE_OPCODE, // 0x60
+ ONE_BYTE_OPCODE, // 0x61
+ ONE_BYTE_OPCODE, // 0x62
+ ONE_BYTE_OPCODE, // 0x63
+ ONE_BYTE_OPCODE, // 0x64
+ ONE_BYTE_OPCODE, // 0x65
+ ONE_BYTE_OPCODE, // 0x66
+ ONE_BYTE_OPCODE, // 0x67
+ ONE_BYTE_OPCODE, // 0x68
+ ONE_BYTE_OPCODE, // 0x69
+ ONE_BYTE_OPCODE, // 0x6a
+ ONE_BYTE_OPCODE, // 0x6b
+ ONE_BYTE_OPCODE, // 0x6c
+ ONE_BYTE_OPCODE, // 0x6d
+ ONE_BYTE_OPCODE, // 0x6e
+ ONE_BYTE_OPCODE, // 0x6f
+ ONE_BYTE_OPCODE, // 0x70
+ ONE_BYTE_OPCODE, // 0x71
+ ONE_BYTE_OPCODE, // 0x72
+ ONE_BYTE_OPCODE, // 0x73
+ ONE_BYTE_OPCODE, // 0x74
+ ONE_BYTE_OPCODE, // 0x75
+ ONE_BYTE_OPCODE, // 0x76
+ ONE_BYTE_OPCODE, // 0x77
+ ONE_BYTE_OPCODE, // 0x78
+ ONE_BYTE_OPCODE, // 0x79
+ ONE_BYTE_OPCODE, // 0x7a
+ ONE_BYTE_OPCODE, // 0x7b
+ ONE_BYTE_OPCODE, // 0x7c
+ ONE_BYTE_OPCODE, // 0x7d
+ ONE_BYTE_OPCODE, // 0x7e
+ ONE_BYTE_OPCODE, // 0x7f
+ ONE_BYTE_OPCODE, // 0x80
+ ONE_BYTE_OPCODE, // 0x81
+ ONE_BYTE_OPCODE, // 0x82
+ ONE_BYTE_OPCODE, // 0x83
+ ONE_BYTE_OPCODE, // 0x84
+ ONE_BYTE_OPCODE, // 0x85
+ ONE_BYTE_OPCODE, // 0x86
+ ONE_BYTE_OPCODE, // 0x87
+ ONE_BYTE_OPCODE, // 0x88
+ ONE_BYTE_OPCODE, // 0x89
+ ONE_BYTE_OPCODE, // 0x8a
+ ONE_BYTE_OPCODE, // 0x8b
+ ONE_BYTE_OPCODE, // 0x8c
+ ONE_BYTE_OPCODE, // 0x8d
+ ONE_BYTE_OPCODE, // 0x8e
+ ONE_BYTE_OPCODE, // 0x8f
+ ONE_BYTE_OPCODE, // 0x90
+ ONE_BYTE_OPCODE, // 0x91
+ ONE_BYTE_OPCODE, // 0x92
+ ONE_BYTE_OPCODE, // 0x93
+ ONE_BYTE_OPCODE, // 0x94
+ ONE_BYTE_OPCODE, // 0x95
+ ONE_BYTE_OPCODE, // 0x96
+ ONE_BYTE_OPCODE, // 0x97
+ ONE_BYTE_OPCODE, // 0x98
+ ONE_BYTE_OPCODE, // 0x99
+ ONE_BYTE_OPCODE, // 0x9a
+ ONE_BYTE_OPCODE, // 0x9b
+ TWO_BYTE_DISJOINT_OPCODE, // 0x9c
+ TWO_BYTE_DISJOINT_OPCODE, // 0x9d
+ TWO_BYTE_DISJOINT_OPCODE, // 0x9e
+ TWO_BYTE_DISJOINT_OPCODE, // 0x9f
+ TWO_BYTE_DISJOINT_OPCODE, // 0xa0
+ TWO_BYTE_DISJOINT_OPCODE, // 0xa1
+ TWO_BYTE_DISJOINT_OPCODE, // 0xa2
+ TWO_BYTE_DISJOINT_OPCODE, // 0xa3
+ TWO_BYTE_DISJOINT_OPCODE, // 0xa4
+ THREE_NIBBLE_OPCODE, // 0xa5
+ TWO_BYTE_DISJOINT_OPCODE, // 0xa6
+ THREE_NIBBLE_OPCODE, // 0xa7
+ ONE_BYTE_OPCODE, // 0xa8
+ ONE_BYTE_OPCODE, // 0xa9
+ ONE_BYTE_OPCODE, // 0xaa
+ ONE_BYTE_OPCODE, // 0xab
+ ONE_BYTE_OPCODE, // 0xac
+ ONE_BYTE_OPCODE, // 0xad
+ ONE_BYTE_OPCODE, // 0xae
+ ONE_BYTE_OPCODE, // 0xaf
+ ONE_BYTE_OPCODE, // 0xb0
+ ONE_BYTE_OPCODE, // 0xb1
+ TWO_BYTE_OPCODE, // 0xb2
+ TWO_BYTE_OPCODE, // 0xb3
+ TWO_BYTE_DISJOINT_OPCODE, // 0xb4
+ TWO_BYTE_DISJOINT_OPCODE, // 0xb5
+ TWO_BYTE_DISJOINT_OPCODE, // 0xb6
+ TWO_BYTE_DISJOINT_OPCODE, // 0xb7
+ TWO_BYTE_DISJOINT_OPCODE, // 0xb8
+ TWO_BYTE_OPCODE, // 0xb9
+ ONE_BYTE_OPCODE, // 0xba
+ ONE_BYTE_OPCODE, // 0xbb
+ ONE_BYTE_OPCODE, // 0xbc
+ ONE_BYTE_OPCODE, // 0xbd
+ ONE_BYTE_OPCODE, // 0xbe
+ ONE_BYTE_OPCODE, // 0xbf
+ THREE_NIBBLE_OPCODE, // 0xc0
+ THREE_NIBBLE_OPCODE, // 0xc1
+ THREE_NIBBLE_OPCODE, // 0xc2
+ THREE_NIBBLE_OPCODE, // 0xc3
+ THREE_NIBBLE_OPCODE, // 0xc4
+ THREE_NIBBLE_OPCODE, // 0xc5
+ THREE_NIBBLE_OPCODE, // 0xc6
+ ONE_BYTE_OPCODE, // 0xc7
+ THREE_NIBBLE_OPCODE, // 0xc8
+ THREE_NIBBLE_OPCODE, // 0xc9
+ THREE_NIBBLE_OPCODE, // 0xca
+ THREE_NIBBLE_OPCODE, // 0xcb
+ THREE_NIBBLE_OPCODE, // 0xcc
+ TWO_BYTE_DISJOINT_OPCODE, // 0xcd
+ TWO_BYTE_DISJOINT_OPCODE, // 0xce
+ TWO_BYTE_DISJOINT_OPCODE, // 0xcf
+ ONE_BYTE_OPCODE, // 0xd0
+ ONE_BYTE_OPCODE, // 0xd1
+ ONE_BYTE_OPCODE, // 0xd2
+ ONE_BYTE_OPCODE, // 0xd3
+ ONE_BYTE_OPCODE, // 0xd4
+ ONE_BYTE_OPCODE, // 0xd5
+ ONE_BYTE_OPCODE, // 0xd6
+ ONE_BYTE_OPCODE, // 0xd7
+ ONE_BYTE_OPCODE, // 0xd8
+ ONE_BYTE_OPCODE, // 0xd9
+ ONE_BYTE_OPCODE, // 0xda
+ ONE_BYTE_OPCODE, // 0xdb
+ ONE_BYTE_OPCODE, // 0xdc
+ ONE_BYTE_OPCODE, // 0xdd
+ ONE_BYTE_OPCODE, // 0xde
+ ONE_BYTE_OPCODE, // 0xdf
+ ONE_BYTE_OPCODE, // 0xe0
+ ONE_BYTE_OPCODE, // 0xe1
+ ONE_BYTE_OPCODE, // 0xe2
+ TWO_BYTE_DISJOINT_OPCODE, // 0xe3
+ TWO_BYTE_DISJOINT_OPCODE, // 0xe4
+ TWO_BYTE_OPCODE, // 0xe5
+ TWO_BYTE_DISJOINT_OPCODE, // 0xe6
+ TWO_BYTE_DISJOINT_OPCODE, // 0xe7
+ ONE_BYTE_OPCODE, // 0xe8
+ ONE_BYTE_OPCODE, // 0xe9
+ ONE_BYTE_OPCODE, // 0xea
+ TWO_BYTE_DISJOINT_OPCODE, // 0xeb
+ TWO_BYTE_DISJOINT_OPCODE, // 0xec
+ TWO_BYTE_DISJOINT_OPCODE, // 0xed
+ ONE_BYTE_OPCODE, // 0xee
+ ONE_BYTE_OPCODE, // 0xef
+ ONE_BYTE_OPCODE, // 0xf0
+ ONE_BYTE_OPCODE, // 0xf1
+ ONE_BYTE_OPCODE, // 0xf2
+ ONE_BYTE_OPCODE, // 0xf3
+ ONE_BYTE_OPCODE, // 0xf4
+ ONE_BYTE_OPCODE, // 0xf5
+ ONE_BYTE_OPCODE, // 0xf6
+ ONE_BYTE_OPCODE, // 0xf7
+ ONE_BYTE_OPCODE, // 0xf8
+ ONE_BYTE_OPCODE, // 0xf9
+ ONE_BYTE_OPCODE, // 0xfa
+ ONE_BYTE_OPCODE, // 0xfb
+ ONE_BYTE_OPCODE, // 0xfc
+ ONE_BYTE_OPCODE, // 0xfd
+ TWO_BYTE_DISJOINT_OPCODE, // 0xfe
+ TWO_BYTE_DISJOINT_OPCODE, // 0xff
+};
+
// These register names are defined in a way to match the native disassembler
// formatting. See for example the command "objdump -d <binary file>".
const char* Registers::names_[kNumRegisters] = {
« no previous file with comments | « src/s390/constants-s390.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698