Skip to content

Commit 4b0f571

Browse files
Junliang YanCommit Bot
authored andcommitted
PPC: fix DCHECK failure on reg aliasing
Change-Id: I2df302a4bed3775dfdf15cc3d1797c50229cc997 Reviewed-on: https://chromium-review.googlesource.com/1194582 Reviewed-by: Joran Siu <[email protected]> Commit-Queue: Junliang Yan <[email protected]> Cr-Commit-Position: refs/heads/master@{#55469}
1 parent d6de4af commit 4b0f571

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

src/ppc/macro-assembler-ppc.cc

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2908,10 +2908,14 @@ void TurboAssembler::SwapP(Register src, MemOperand dst, Register scratch) {
29082908

29092909
void TurboAssembler::SwapP(MemOperand src, MemOperand dst, Register scratch_0,
29102910
Register scratch_1) {
2911-
if (src.ra() != r0) DCHECK(!AreAliased(src.ra(), scratch_0, scratch_1));
2912-
if (src.rb() != r0) DCHECK(!AreAliased(src.rb(), scratch_0, scratch_1));
2913-
if (dst.ra() != r0) DCHECK(!AreAliased(dst.ra(), scratch_0, scratch_1));
2914-
if (dst.rb() != r0) DCHECK(!AreAliased(dst.rb(), scratch_0, scratch_1));
2911+
if (src.ra() != r0 && src.ra().is_valid())
2912+
DCHECK(!AreAliased(src.ra(), scratch_0, scratch_1));
2913+
if (src.rb() != r0 && src.rb().is_valid())
2914+
DCHECK(!AreAliased(src.rb(), scratch_0, scratch_1));
2915+
if (dst.ra() != r0 && dst.ra().is_valid())
2916+
DCHECK(!AreAliased(dst.ra(), scratch_0, scratch_1));
2917+
if (dst.rb() != r0 && dst.rb().is_valid())
2918+
DCHECK(!AreAliased(dst.rb(), scratch_0, scratch_1));
29152919
DCHECK(!AreAliased(scratch_0, scratch_1));
29162920
if (is_int16(src.offset()) || is_int16(dst.offset())) {
29172921
if (!is_int16(src.offset())) {

0 commit comments

Comments
 (0)