Revert "[ptr-compr][turbofan] Calling the non-compressed Tagged loads and stores"
This reverts commit 3c510438606bbad5c9b1fe5339cf56cdd180c878.
Reason for revert: Breaks pointer compression bots (https://ci.chromium.org/p/v8/builders/try.triggered/v8_linux64_pointer_compression_rel_ng_triggered/b8914100067516580000)
Original change's description:
> [ptr-compr][turbofan] Calling the non-compressed Tagged loads and stores
>
> This CL changes the instruction selector so that we use the normal load
> and store, instead of the one that (de)compresses.
>
> Also removed "return;"s and "break;"s that were unnecessary.
>
> Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng
> Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng
> Bug: v8:8977, v8:7703
> Change-Id: I4f2a82bfc4d300dd56300f394f59c3f9da242ba8
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1593296
> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
> Reviewed-by: Michael Stanton <mvstanton@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#61304}
TBR=mvstanton@chromium.org,jarin@chromium.org,solanes@chromium.org
Change-Id: I022895f648b7f9a24944d1c647ba76773cee3669
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: v8:8977, v8:7703
Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng
Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1601136
Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61319}
diff --git a/src/compiler/backend/arm64/instruction-selector-arm64.cc b/src/compiler/backend/arm64/instruction-selector-arm64.cc
index e3772b5..f363df0 100644
--- a/src/compiler/backend/arm64/instruction-selector-arm64.cc
+++ b/src/compiler/backend/arm64/instruction-selector-arm64.cc
@@ -620,19 +620,35 @@
opcode = kArm64LdrW;
immediate_mode = kLoadStoreImm32;
break;
- case MachineRepresentation::kCompressedSigned: // Fall through.
- case MachineRepresentation::kCompressedPointer: // Fall through.
- case MachineRepresentation::kCompressed:
#ifdef V8_COMPRESS_POINTERS
+ case MachineRepresentation::kTaggedSigned:
+ opcode = kArm64LdrDecompressTaggedSigned;
+ immediate_mode = kLoadStoreImm32;
+ break;
+ case MachineRepresentation::kTaggedPointer:
+ opcode = kArm64LdrDecompressTaggedPointer;
+ immediate_mode = kLoadStoreImm32;
+ break;
+ case MachineRepresentation::kTagged:
+ opcode = kArm64LdrDecompressAnyTagged;
+ immediate_mode = kLoadStoreImm32;
+ break;
+ case MachineRepresentation::kCompressedSigned:
+ case MachineRepresentation::kCompressedPointer:
+ case MachineRepresentation::kCompressed:
opcode = kArm64LdrW;
immediate_mode = kLoadStoreImm32;
break;
#else
+ case MachineRepresentation::kCompressedSigned: // Fall through.
+ case MachineRepresentation::kCompressedPointer: // Fall through.
+ case MachineRepresentation::kCompressed:
UNREACHABLE();
-#endif
+ return;
case MachineRepresentation::kTaggedSigned: // Fall through.
case MachineRepresentation::kTaggedPointer: // Fall through.
case MachineRepresentation::kTagged: // Fall through.
+#endif
case MachineRepresentation::kWord64:
opcode = kArm64Ldr;
immediate_mode = kLoadStoreImm64;
@@ -643,6 +659,7 @@
break;
case MachineRepresentation::kNone:
UNREACHABLE();
+ return;
}
if (node->opcode() == IrOpcode::kPoisonedLoad) {
CHECK_NE(poisoning_level_, PoisoningMitigationLevel::kDontPoison);
@@ -720,19 +737,29 @@
opcode = kArm64StrW;
immediate_mode = kLoadStoreImm32;
break;
- case MachineRepresentation::kCompressedSigned: // Fall through.
- case MachineRepresentation::kCompressedPointer: // Fall through.
- case MachineRepresentation::kCompressed:
#ifdef V8_COMPRESS_POINTERS
+ case MachineRepresentation::kTaggedSigned:
+ case MachineRepresentation::kTaggedPointer:
+ case MachineRepresentation::kTagged:
+ opcode = kArm64StrCompressTagged;
+ immediate_mode = kLoadStoreImm32;
+ break;
+ case MachineRepresentation::kCompressedSigned:
+ case MachineRepresentation::kCompressedPointer:
+ case MachineRepresentation::kCompressed:
opcode = kArm64StrW;
immediate_mode = kLoadStoreImm32;
break;
#else
+ case MachineRepresentation::kCompressedSigned: // Fall through.
+ case MachineRepresentation::kCompressedPointer: // Fall through.
+ case MachineRepresentation::kCompressed:
UNREACHABLE();
-#endif
+ return;
case MachineRepresentation::kTaggedSigned: // Fall through.
case MachineRepresentation::kTaggedPointer: // Fall through.
case MachineRepresentation::kTagged: // Fall through.
+#endif
case MachineRepresentation::kWord64:
opcode = kArm64Str;
immediate_mode = kLoadStoreImm64;
@@ -743,6 +770,7 @@
break;
case MachineRepresentation::kNone:
UNREACHABLE();
+ return;
}
inputs[0] = g.UseRegisterOrImmediateZero(value);
diff --git a/src/compiler/backend/x64/instruction-selector-x64.cc b/src/compiler/backend/x64/instruction-selector-x64.cc
index 6304955..f03b29b 100644
--- a/src/compiler/backend/x64/instruction-selector-x64.cc
+++ b/src/compiler/backend/x64/instruction-selector-x64.cc
@@ -240,18 +240,33 @@
case MachineRepresentation::kWord32:
opcode = kX64Movl;
break;
+#ifdef V8_COMPRESS_POINTERS
+ case MachineRepresentation::kTaggedSigned:
+ opcode = kX64MovqDecompressTaggedSigned;
+ break;
+ case MachineRepresentation::kTaggedPointer:
+ opcode = kX64MovqDecompressTaggedPointer;
+ break;
+ case MachineRepresentation::kTagged:
+ opcode = kX64MovqDecompressAnyTagged;
+ break;
case MachineRepresentation::kCompressedSigned: // Fall through.
case MachineRepresentation::kCompressedPointer: // Fall through.
case MachineRepresentation::kCompressed:
-#ifdef V8_COMPRESS_POINTERS
opcode = kX64Movl;
break;
#else
+ case MachineRepresentation::kCompressedSigned: // Fall through.
+ case MachineRepresentation::kCompressedPointer: // Fall through.
+ case MachineRepresentation::kCompressed:
UNREACHABLE();
-#endif
+ break;
case MachineRepresentation::kTaggedSigned: // Fall through.
case MachineRepresentation::kTaggedPointer: // Fall through.
- case MachineRepresentation::kTagged: // Fall through.
+ case MachineRepresentation::kTagged:
+ opcode = kX64Movq;
+ break;
+#endif
case MachineRepresentation::kWord64:
opcode = kX64Movq;
break;
@@ -260,6 +275,7 @@
break;
case MachineRepresentation::kNone:
UNREACHABLE();
+ break;
}
return opcode;
}
@@ -268,30 +284,46 @@
switch (store_rep.representation()) {
case MachineRepresentation::kFloat32:
return kX64Movss;
+ break;
case MachineRepresentation::kFloat64:
return kX64Movsd;
+ break;
case MachineRepresentation::kBit: // Fall through.
case MachineRepresentation::kWord8:
return kX64Movb;
+ break;
case MachineRepresentation::kWord16:
return kX64Movw;
+ break;
case MachineRepresentation::kWord32:
return kX64Movl;
+ break;
+#ifdef V8_COMPRESS_POINTERS
+ case MachineRepresentation::kTaggedSigned: // Fall through.
+ case MachineRepresentation::kTaggedPointer: // Fall through.
+ case MachineRepresentation::kTagged:
+ return kX64MovqCompressTagged;
case MachineRepresentation::kCompressedSigned: // Fall through.
case MachineRepresentation::kCompressedPointer: // Fall through.
case MachineRepresentation::kCompressed:
-#ifdef V8_COMPRESS_POINTERS
- return kX64MovqCompressTagged;
+ return kX64Movl;
#else
+ case MachineRepresentation::kCompressedSigned: // Fall through.
+ case MachineRepresentation::kCompressedPointer: // Fall through.
+ case MachineRepresentation::kCompressed:
UNREACHABLE();
-#endif
case MachineRepresentation::kTaggedSigned: // Fall through.
case MachineRepresentation::kTaggedPointer: // Fall through.
- case MachineRepresentation::kTagged: // Fall through.
+ case MachineRepresentation::kTagged:
+ return kX64Movq;
+ break;
+#endif
case MachineRepresentation::kWord64:
return kX64Movq;
+ break;
case MachineRepresentation::kSimd128: // Fall through.
return kX64Movdqu;
+ break;
case MachineRepresentation::kNone:
UNREACHABLE();
}