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 {
(static_cast<uint64_t>(opcode_value & 0x00FF)); \
emit6bytes(code); \
}
VRR_A_OPCODE_LIST(DECLARE_VRR_A_INSTRUCTIONS)
S390_VRR_A_OPCODE_LIST(DECLARE_VRR_A_INSTRUCTIONS)
#undef DECLARE_VRR_A_INSTRUCTIONS
#define DECLARE_VRR_C_INSTRUCTIONS(name, opcode_name, opcode_value) \
......@@ -786,7 +786,7 @@ class Assembler : public AssemblerBase {
(static_cast<uint64_t>(opcode_value & 0x00FF)); \
emit6bytes(code); \
}
VRR_C_OPCODE_LIST(DECLARE_VRR_C_INSTRUCTIONS)
S390_VRR_C_OPCODE_LIST(DECLARE_VRR_C_INSTRUCTIONS)
#undef DECLARE_VRR_C_INSTRUCTIONS
// 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) {
case opcode_name: \
Format(instr, #name "\t'f1,'f2,'f3"); \
break;
VRR_A_OPCODE_LIST(DECODE_VRR_C_INSTRUCTIONS)
S390_VRR_C_OPCODE_LIST(DECODE_VRR_C_INSTRUCTIONS)
#undef DECODE_VRR_C_INSTRUCTIONS
case LLILF:
Format(instr, "llilf\t'r1,'i7");
......
......@@ -743,9 +743,15 @@ void Simulator::EvalTableInit() {
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) \
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
EvalTable[DUMY] = &Simulator::Evaluate_DUMY;
......
......@@ -523,8 +523,8 @@ class Simulator {
#define EVALUATE(name) int Evaluate_##name(Instruction* instr)
#define EVALUATE_VRR_INSTRUCTIONS(name, op_name, op_value) EVALUATE(op_name);
VRR_C_OPCODE_LIST(EVALUATE_VRR_INSTRUCTIONS)
VRR_A_OPCODE_LIST(EVALUATE_VRR_INSTRUCTIONS)
S390_VRR_C_OPCODE_LIST(EVALUATE_VRR_INSTRUCTIONS)
S390_VRR_A_OPCODE_LIST(EVALUATE_VRR_INSTRUCTIONS)
#undef EVALUATE_VRR_INSTRUCTIONS
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