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

Unified Diff: src/compiler/s390/code-generator-s390.cc

Issue 2216883003: S390: Decouple TF Operator kS390_And/Or/Xor/Not to 32/64 (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 4 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 | « no previous file | src/compiler/s390/instruction-codes-s390.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/s390/code-generator-s390.cc
diff --git a/src/compiler/s390/code-generator-s390.cc b/src/compiler/s390/code-generator-s390.cc
index 25e314bc54b6b3bfa2518d5d32f9b3a16ddcfc30..5af45ff2975fa0e37fbbed1c8289f1677bb0cf45 100644
--- a/src/compiler/s390/code-generator-s390.cc
+++ b/src/compiler/s390/code-generator-s390.cc
@@ -279,15 +279,15 @@ Condition FlagsConditionToCondition(FlagsCondition condition, ArchOpcode op) {
i.InputDoubleRegister(1)); \
} while (0)
-#define ASSEMBLE_BINOP(asm_instr_reg, asm_instr_imm) \
- do { \
- if (HasRegisterInput(instr, 1)) { \
- __ asm_instr_reg(i.OutputRegister(), i.InputRegister(0), \
- i.InputRegister(1)); \
- } else { \
- __ asm_instr_imm(i.OutputRegister(), i.InputRegister(0), \
- i.InputImmediate(1)); \
- } \
+#define ASSEMBLE_BINOP(asm_instr) \
+ do { \
+ if (HasRegisterInput(instr, 1)) { \
+ __ asm_instr(i.OutputRegister(), i.InputRegister(0), \
+ i.InputRegister(1)); \
+ } else { \
+ __ asm_instr(i.OutputRegister(), i.InputRegister(0), \
+ i.InputImmediate(1)); \
+ } \
} while (0)
#define ASSEMBLE_BINOP_INT(asm_instr_reg, asm_instr_imm) \
@@ -986,14 +986,22 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
Operand(offset.offset()));
break;
}
- case kS390_And:
- ASSEMBLE_BINOP(AndP, AndP);
+ case kS390_And32:
+ ASSEMBLE_BINOP(And);
+ break;
+ case kS390_And64:
+ ASSEMBLE_BINOP(AndP);
JoranSiu 2016/08/05 13:23:40 Instead of using AndP masm routines for the 64-bit
john.yan 2016/08/05 14:26:42 We don't have a And64 for now. And given that And6
break;
- case kS390_Or:
- ASSEMBLE_BINOP(OrP, OrP);
+ case kS390_Or32:
+ ASSEMBLE_BINOP(Or);
+ case kS390_Or64:
+ ASSEMBLE_BINOP(OrP);
break;
- case kS390_Xor:
- ASSEMBLE_BINOP(XorP, XorP);
+ case kS390_Xor32:
+ ASSEMBLE_BINOP(Xor);
+ break;
+ case kS390_Xor64:
+ ASSEMBLE_BINOP(XorP);
break;
case kS390_ShiftLeft32:
if (HasRegisterInput(instr, 1)) {
@@ -1002,16 +1010,16 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
__ LoadRR(kScratchReg, i.InputRegister(1));
__ ShiftLeft(i.OutputRegister(), i.InputRegister(0), kScratchReg);
} else {
- ASSEMBLE_BINOP(ShiftLeft, ShiftLeft);
+ ASSEMBLE_BINOP(ShiftLeft);
}
} else {
- ASSEMBLE_BINOP(ShiftLeft, ShiftLeft);
+ ASSEMBLE_BINOP(ShiftLeft);
}
__ LoadlW(i.OutputRegister(0), i.OutputRegister(0));
break;
#if V8_TARGET_ARCH_S390X
case kS390_ShiftLeft64:
- ASSEMBLE_BINOP(sllg, sllg);
+ ASSEMBLE_BINOP(sllg);
break;
#endif
case kS390_ShiftRight32:
@@ -1021,16 +1029,16 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
__ LoadRR(kScratchReg, i.InputRegister(1));
__ ShiftRight(i.OutputRegister(), i.InputRegister(0), kScratchReg);
} else {
- ASSEMBLE_BINOP(ShiftRight, ShiftRight);
+ ASSEMBLE_BINOP(ShiftRight);
}
} else {
- ASSEMBLE_BINOP(ShiftRight, ShiftRight);
+ ASSEMBLE_BINOP(ShiftRight);
}
__ LoadlW(i.OutputRegister(0), i.OutputRegister(0));
break;
#if V8_TARGET_ARCH_S390X
case kS390_ShiftRight64:
- ASSEMBLE_BINOP(srlg, srlg);
+ ASSEMBLE_BINOP(srlg);
break;
#endif
case kS390_ShiftRightArith32:
@@ -1041,16 +1049,16 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
__ ShiftRightArith(i.OutputRegister(), i.InputRegister(0),
kScratchReg);
} else {
- ASSEMBLE_BINOP(ShiftRightArith, ShiftRightArith);
+ ASSEMBLE_BINOP(ShiftRightArith);
}
} else {
- ASSEMBLE_BINOP(ShiftRightArith, ShiftRightArith);
+ ASSEMBLE_BINOP(ShiftRightArith);
}
__ LoadlW(i.OutputRegister(), i.OutputRegister());
break;
#if V8_TARGET_ARCH_S390X
case kS390_ShiftRightArith64:
- ASSEMBLE_BINOP(srag, srag);
+ ASSEMBLE_BINOP(srag);
break;
#endif
#if !V8_TARGET_ARCH_S390X
@@ -1141,9 +1149,11 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
}
break;
#endif
- case kS390_Not:
- __ LoadRR(i.OutputRegister(), i.InputRegister(0));
- __ NotP(i.OutputRegister());
+ case kS390_Not32:
+ __ Not32(i.OutputRegister(), i.InputRegister(0));
+ break;
+ case kS390_Not64:
+ __ Not64(i.OutputRegister(), i.InputRegister(0));
break;
case kS390_RotLeftAndMask32:
if (CpuFeatures::IsSupported(GENERAL_INSTR_EXT)) {
@@ -1205,7 +1215,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
ASSEMBLE_ADD_WITH_OVERFLOW();
} else {
#endif
- ASSEMBLE_BINOP(AddP, AddP);
+ ASSEMBLE_BINOP(AddP);
#if V8_TARGET_ARCH_S390X
}
#endif
@@ -1239,7 +1249,7 @@ CodeGenerator::CodeGenResult CodeGenerator::AssembleArchInstruction(
ASSEMBLE_SUB_WITH_OVERFLOW();
} else {
#endif
- ASSEMBLE_BINOP(SubP, SubP);
+ ASSEMBLE_BINOP(SubP);
#if V8_TARGET_ARCH_S390X
}
#endif
« no previous file with comments | « no previous file | src/compiler/s390/instruction-codes-s390.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698