Commit 138a05b9 authored by Santiago Aboy Solanes's avatar Santiago Aboy Solanes Committed by Commit Bot

Revert "[ptr-compr][turbofan] Calling the non-compressed Tagged loads and stores"

This reverts commit 3c510438.

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: 's avatarSantiago Aboy Solanes <solanes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61319}
parent ad988c69
...@@ -620,19 +620,35 @@ void InstructionSelector::VisitLoad(Node* node) { ...@@ -620,19 +620,35 @@ void InstructionSelector::VisitLoad(Node* node) {
opcode = kArm64LdrW; opcode = kArm64LdrW;
immediate_mode = kLoadStoreImm32; immediate_mode = kLoadStoreImm32;
break; break;
case MachineRepresentation::kCompressedSigned: // Fall through.
case MachineRepresentation::kCompressedPointer: // Fall through.
case MachineRepresentation::kCompressed:
#ifdef V8_COMPRESS_POINTERS #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; opcode = kArm64LdrW;
immediate_mode = kLoadStoreImm32; immediate_mode = kLoadStoreImm32;
break; break;
#else #else
case MachineRepresentation::kCompressedSigned: // Fall through.
case MachineRepresentation::kCompressedPointer: // Fall through.
case MachineRepresentation::kCompressed:
UNREACHABLE(); UNREACHABLE();
#endif return;
case MachineRepresentation::kTaggedSigned: // Fall through. case MachineRepresentation::kTaggedSigned: // Fall through.
case MachineRepresentation::kTaggedPointer: // Fall through. case MachineRepresentation::kTaggedPointer: // Fall through.
case MachineRepresentation::kTagged: // Fall through. case MachineRepresentation::kTagged: // Fall through.
#endif
case MachineRepresentation::kWord64: case MachineRepresentation::kWord64:
opcode = kArm64Ldr; opcode = kArm64Ldr;
immediate_mode = kLoadStoreImm64; immediate_mode = kLoadStoreImm64;
...@@ -643,6 +659,7 @@ void InstructionSelector::VisitLoad(Node* node) { ...@@ -643,6 +659,7 @@ void InstructionSelector::VisitLoad(Node* node) {
break; break;
case MachineRepresentation::kNone: case MachineRepresentation::kNone:
UNREACHABLE(); UNREACHABLE();
return;
} }
if (node->opcode() == IrOpcode::kPoisonedLoad) { if (node->opcode() == IrOpcode::kPoisonedLoad) {
CHECK_NE(poisoning_level_, PoisoningMitigationLevel::kDontPoison); CHECK_NE(poisoning_level_, PoisoningMitigationLevel::kDontPoison);
...@@ -720,19 +737,29 @@ void InstructionSelector::VisitStore(Node* node) { ...@@ -720,19 +737,29 @@ void InstructionSelector::VisitStore(Node* node) {
opcode = kArm64StrW; opcode = kArm64StrW;
immediate_mode = kLoadStoreImm32; immediate_mode = kLoadStoreImm32;
break; break;
case MachineRepresentation::kCompressedSigned: // Fall through.
case MachineRepresentation::kCompressedPointer: // Fall through.
case MachineRepresentation::kCompressed:
#ifdef V8_COMPRESS_POINTERS #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; opcode = kArm64StrW;
immediate_mode = kLoadStoreImm32; immediate_mode = kLoadStoreImm32;
break; break;
#else #else
case MachineRepresentation::kCompressedSigned: // Fall through.
case MachineRepresentation::kCompressedPointer: // Fall through.
case MachineRepresentation::kCompressed:
UNREACHABLE(); UNREACHABLE();
#endif return;
case MachineRepresentation::kTaggedSigned: // Fall through. case MachineRepresentation::kTaggedSigned: // Fall through.
case MachineRepresentation::kTaggedPointer: // Fall through. case MachineRepresentation::kTaggedPointer: // Fall through.
case MachineRepresentation::kTagged: // Fall through. case MachineRepresentation::kTagged: // Fall through.
#endif
case MachineRepresentation::kWord64: case MachineRepresentation::kWord64:
opcode = kArm64Str; opcode = kArm64Str;
immediate_mode = kLoadStoreImm64; immediate_mode = kLoadStoreImm64;
...@@ -743,6 +770,7 @@ void InstructionSelector::VisitStore(Node* node) { ...@@ -743,6 +770,7 @@ void InstructionSelector::VisitStore(Node* node) {
break; break;
case MachineRepresentation::kNone: case MachineRepresentation::kNone:
UNREACHABLE(); UNREACHABLE();
return;
} }
inputs[0] = g.UseRegisterOrImmediateZero(value); inputs[0] = g.UseRegisterOrImmediateZero(value);
......
...@@ -240,18 +240,33 @@ ArchOpcode GetLoadOpcode(LoadRepresentation load_rep) { ...@@ -240,18 +240,33 @@ ArchOpcode GetLoadOpcode(LoadRepresentation load_rep) {
case MachineRepresentation::kWord32: case MachineRepresentation::kWord32:
opcode = kX64Movl; opcode = kX64Movl;
break; 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::kCompressedSigned: // Fall through.
case MachineRepresentation::kCompressedPointer: // Fall through. case MachineRepresentation::kCompressedPointer: // Fall through.
case MachineRepresentation::kCompressed: case MachineRepresentation::kCompressed:
#ifdef V8_COMPRESS_POINTERS
opcode = kX64Movl; opcode = kX64Movl;
break; break;
#else #else
case MachineRepresentation::kCompressedSigned: // Fall through.
case MachineRepresentation::kCompressedPointer: // Fall through.
case MachineRepresentation::kCompressed:
UNREACHABLE(); UNREACHABLE();
#endif break;
case MachineRepresentation::kTaggedSigned: // Fall through. case MachineRepresentation::kTaggedSigned: // Fall through.
case MachineRepresentation::kTaggedPointer: // Fall through. case MachineRepresentation::kTaggedPointer: // Fall through.
case MachineRepresentation::kTagged: // Fall through. case MachineRepresentation::kTagged:
opcode = kX64Movq;
break;
#endif
case MachineRepresentation::kWord64: case MachineRepresentation::kWord64:
opcode = kX64Movq; opcode = kX64Movq;
break; break;
...@@ -260,6 +275,7 @@ ArchOpcode GetLoadOpcode(LoadRepresentation load_rep) { ...@@ -260,6 +275,7 @@ ArchOpcode GetLoadOpcode(LoadRepresentation load_rep) {
break; break;
case MachineRepresentation::kNone: case MachineRepresentation::kNone:
UNREACHABLE(); UNREACHABLE();
break;
} }
return opcode; return opcode;
} }
...@@ -268,30 +284,46 @@ ArchOpcode GetStoreOpcode(StoreRepresentation store_rep) { ...@@ -268,30 +284,46 @@ ArchOpcode GetStoreOpcode(StoreRepresentation store_rep) {
switch (store_rep.representation()) { switch (store_rep.representation()) {
case MachineRepresentation::kFloat32: case MachineRepresentation::kFloat32:
return kX64Movss; return kX64Movss;
break;
case MachineRepresentation::kFloat64: case MachineRepresentation::kFloat64:
return kX64Movsd; return kX64Movsd;
break;
case MachineRepresentation::kBit: // Fall through. case MachineRepresentation::kBit: // Fall through.
case MachineRepresentation::kWord8: case MachineRepresentation::kWord8:
return kX64Movb; return kX64Movb;
break;
case MachineRepresentation::kWord16: case MachineRepresentation::kWord16:
return kX64Movw; return kX64Movw;
break;
case MachineRepresentation::kWord32: case MachineRepresentation::kWord32:
return kX64Movl; 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::kCompressedSigned: // Fall through.
case MachineRepresentation::kCompressedPointer: // Fall through. case MachineRepresentation::kCompressedPointer: // Fall through.
case MachineRepresentation::kCompressed: case MachineRepresentation::kCompressed:
#ifdef V8_COMPRESS_POINTERS return kX64Movl;
return kX64MovqCompressTagged;
#else #else
case MachineRepresentation::kCompressedSigned: // Fall through.
case MachineRepresentation::kCompressedPointer: // Fall through.
case MachineRepresentation::kCompressed:
UNREACHABLE(); UNREACHABLE();
#endif
case MachineRepresentation::kTaggedSigned: // Fall through. case MachineRepresentation::kTaggedSigned: // Fall through.
case MachineRepresentation::kTaggedPointer: // Fall through. case MachineRepresentation::kTaggedPointer: // Fall through.
case MachineRepresentation::kTagged: // Fall through. case MachineRepresentation::kTagged:
return kX64Movq;
break;
#endif
case MachineRepresentation::kWord64: case MachineRepresentation::kWord64:
return kX64Movq; return kX64Movq;
break;
case MachineRepresentation::kSimd128: // Fall through. case MachineRepresentation::kSimd128: // Fall through.
return kX64Movdqu; return kX64Movdqu;
break;
case MachineRepresentation::kNone: case MachineRepresentation::kNone:
UNREACHABLE(); UNREACHABLE();
} }
......
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