Index: src/mips/assembler-mips.h |
diff --git a/src/mips/assembler-mips.h b/src/mips/assembler-mips.h |
index 71637701785e84f4dddaa95524855f84c4cbfb24..ee4daadf1243c584329aa60376636b034b2521a7 100644 |
--- a/src/mips/assembler-mips.h |
+++ b/src/mips/assembler-mips.h |
@@ -663,10 +663,13 @@ class Assembler : public AssemblerBase { |
FIRST_IC_MARKER = PROPERTY_ACCESS_INLINED |
}; |
- // Type == 0 is the default non-marking type. |
+ // Type == 0 is the default non-marking nop. For mips this is a |
+ // sll(zero_reg, zero_reg, 0). We use rt_reg == at for non-zero |
+ // marking, to avoid conflict with ssnop and ehb instructions. |
void nop(unsigned int type = 0) { |
ASSERT(type < 32); |
- sll(zero_reg, zero_reg, type, true); |
+ Register nop_rt_reg = (type == 0) ? zero_reg : at; |
+ sll(zero_reg, nop_rt_reg, type, true); |
} |