Commit 4c640be1 authored by jyan's avatar jyan Committed by Commit bot

s390: cleanup s390 opcode table

Cleanup s390 opcode table and add z13 new opcodes

R=joransiu@ca.ibm.com, bjaideep@ca.ibm.com
BUG=

Review-Url: https://codereview.chromium.org/2586503003
Cr-Commit-Position: refs/heads/master@{#41820}
parent f48adcfa
...@@ -770,7 +770,7 @@ class Assembler : public AssemblerBase { ...@@ -770,7 +770,7 @@ class Assembler : public AssemblerBase {
(static_cast<uint64_t>(opcode_value & 0x00FF)); \ (static_cast<uint64_t>(opcode_value & 0x00FF)); \
emit6bytes(code); \ emit6bytes(code); \
} }
VRR_A_OPCODE_LIST(DECLARE_VRR_A_INSTRUCTIONS) S390_VRR_A_OPCODE_LIST(DECLARE_VRR_A_INSTRUCTIONS)
#undef DECLARE_VRR_A_INSTRUCTIONS #undef DECLARE_VRR_A_INSTRUCTIONS
#define DECLARE_VRR_C_INSTRUCTIONS(name, opcode_name, opcode_value) \ #define DECLARE_VRR_C_INSTRUCTIONS(name, opcode_name, opcode_value) \
...@@ -786,7 +786,7 @@ class Assembler : public AssemblerBase { ...@@ -786,7 +786,7 @@ class Assembler : public AssemblerBase {
(static_cast<uint64_t>(opcode_value & 0x00FF)); \ (static_cast<uint64_t>(opcode_value & 0x00FF)); \
emit6bytes(code); \ emit6bytes(code); \
} }
VRR_C_OPCODE_LIST(DECLARE_VRR_C_INSTRUCTIONS) S390_VRR_C_OPCODE_LIST(DECLARE_VRR_C_INSTRUCTIONS)
#undef DECLARE_VRR_C_INSTRUCTIONS #undef DECLARE_VRR_C_INSTRUCTIONS
// Single Element format // Single Element format
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -1059,7 +1059,7 @@ bool Decoder::DecodeSixByte(Instruction* instr) { ...@@ -1059,7 +1059,7 @@ bool Decoder::DecodeSixByte(Instruction* instr) {
case opcode_name: \ case opcode_name: \
Format(instr, #name "\t'f1,'f2,'f3"); \ Format(instr, #name "\t'f1,'f2,'f3"); \
break; break;
VRR_A_OPCODE_LIST(DECODE_VRR_C_INSTRUCTIONS) S390_VRR_C_OPCODE_LIST(DECODE_VRR_C_INSTRUCTIONS)
#undef DECODE_VRR_C_INSTRUCTIONS #undef DECODE_VRR_C_INSTRUCTIONS
case LLILF: case LLILF:
Format(instr, "llilf\t'r1,'i7"); Format(instr, "llilf\t'r1,'i7");
......
...@@ -743,9 +743,15 @@ void Simulator::EvalTableInit() { ...@@ -743,9 +743,15 @@ void Simulator::EvalTableInit() {
EvalTable[i] = &Simulator::Evaluate_Unknown; EvalTable[i] = &Simulator::Evaluate_Unknown;
} }
#define S390_SUPPORTED_VECTOR_OPCODE_LIST(V) \
V(vfs, VFS, 0xE7E2) /* type = VRR_C VECTOR FP SUBTRACT */ \
V(vfa, VFA, 0xE7E3) /* type = VRR_C VECTOR FP ADD */ \
V(vfd, VFD, 0xE7E5) /* type = VRR_C VECTOR FP DIVIDE */ \
V(vfm, VFM, 0xE7E7) /* type = VRR_C VECTOR FP MULTIPLY */
#define CREATE_EVALUATE_TABLE(name, op_name, op_value) \ #define CREATE_EVALUATE_TABLE(name, op_name, op_value) \
EvalTable[op_name] = &Simulator::Evaluate_##op_name; EvalTable[op_name] = &Simulator::Evaluate_##op_name;
VRR_C_OPCODE_LIST(CREATE_EVALUATE_TABLE); S390_SUPPORTED_VECTOR_OPCODE_LIST(CREATE_EVALUATE_TABLE);
#undef CREATE_EVALUATE_TABLE #undef CREATE_EVALUATE_TABLE
EvalTable[DUMY] = &Simulator::Evaluate_DUMY; EvalTable[DUMY] = &Simulator::Evaluate_DUMY;
......
...@@ -523,8 +523,8 @@ class Simulator { ...@@ -523,8 +523,8 @@ class Simulator {
#define EVALUATE(name) int Evaluate_##name(Instruction* instr) #define EVALUATE(name) int Evaluate_##name(Instruction* instr)
#define EVALUATE_VRR_INSTRUCTIONS(name, op_name, op_value) EVALUATE(op_name); #define EVALUATE_VRR_INSTRUCTIONS(name, op_name, op_value) EVALUATE(op_name);
VRR_C_OPCODE_LIST(EVALUATE_VRR_INSTRUCTIONS) S390_VRR_C_OPCODE_LIST(EVALUATE_VRR_INSTRUCTIONS)
VRR_A_OPCODE_LIST(EVALUATE_VRR_INSTRUCTIONS) S390_VRR_A_OPCODE_LIST(EVALUATE_VRR_INSTRUCTIONS)
#undef EVALUATE_VRR_INSTRUCTIONS #undef EVALUATE_VRR_INSTRUCTIONS
EVALUATE(DUMY); EVALUATE(DUMY);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment