Skip to content
This repository was archived by the owner on Jul 9, 2025. It is now read-only.

Commit aa2117f

Browse files
CSharperMantlejandem
authored andcommitted
Bug 1975645 - [riscv64] Part 4: Implement overloads of MacroAssembler::test32MovePtr. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D256071
1 parent 011a775 commit aa2117f

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

js/src/jit/riscv64/MacroAssembler-riscv64-inl.h

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2192,13 +2192,21 @@ void MacroAssembler::test32LoadPtr(Condition cond, const Address& addr,
21922192
loadPtr(src, dest);
21932193
bind(&skip);
21942194
}
2195-
void MacroAssembler::test32MovePtr(Condition, const Address&, Imm32, Register,
2196-
Register) {
2197-
MOZ_CRASH();
2195+
void MacroAssembler::test32MovePtr(Condition cond, const Address& addr,
2196+
Imm32 mask, Register src, Register dest) {
2197+
MOZ_ASSERT(cond == Assembler::Zero || cond == Assembler::NonZero);
2198+
Label skip;
2199+
branchTest32(Assembler::InvertCondition(cond), addr, mask, &skip);
2200+
movePtr(src, dest);
2201+
bind(&skip);
21982202
}
21992203
void MacroAssembler::test32MovePtr(Condition cond, Register operand, Imm32 mask,
22002204
Register src, Register dest) {
2201-
MOZ_CRASH();
2205+
MOZ_ASSERT(cond == Assembler::Zero || cond == Assembler::NonZero);
2206+
Label skip;
2207+
branchTest32(Assembler::InvertCondition(cond), operand, mask, &skip);
2208+
movePtr(src, dest);
2209+
bind(&skip);
22022210
}
22032211
void MacroAssembler::xor32(Register src, Register dest) {
22042212
ma_xor(dest, dest, src);

0 commit comments

Comments
 (0)