Skip to content

Commit 6771d3e

Browse files
gahaasCommit Bot
authored and
Commit Bot
committed
[wasm][liftoff][cleanup] Remove default parameter of GetUnusedRegister
This CL removes the default parameter of GetUnusedRegister to avoid bugs where the default parameter is used accidentially. With "{}" the default value of the parameter is easy to write, and also not much more difficult to read. [email protected] Bug: v8:10506 Change-Id: I3debe5eb91578c82abdac81dc6c252435fdf30d6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202991 Reviewed-by: Clemens Backes <[email protected]> Commit-Queue: Andreas Haas <[email protected]> Cr-Commit-Position: refs/heads/master@{#67822}
1 parent 3b4bafa commit 6771d3e

7 files changed

+53
-52
lines changed

src/wasm/baseline/arm/liftoff-assembler-arm.h

+5-5
Original file line numberDiff line numberDiff line change
@@ -462,7 +462,7 @@ void LiftoffAssembler::LoadConstant(LiftoffRegister reg, WasmValue value,
462462
vmov(liftoff::GetFloatRegister(reg.fp()), value.to_f32_boxed());
463463
break;
464464
case ValueType::kF64: {
465-
Register extra_scratch = GetUnusedRegister(kGpReg).gp();
465+
Register extra_scratch = GetUnusedRegister(kGpReg, {}).gp();
466466
vmov(reg.fp(), Double(value.to_f64_boxed().get_bits()), extra_scratch);
467467
break;
468468
}
@@ -1196,7 +1196,7 @@ void LiftoffAssembler::StoreCallerFrameSlot(LiftoffRegister src,
11961196
void LiftoffAssembler::MoveStackValue(uint32_t dst_offset, uint32_t src_offset,
11971197
ValueType type) {
11981198
DCHECK_NE(dst_offset, src_offset);
1199-
LiftoffRegister reg = GetUnusedRegister(reg_class_for(type));
1199+
LiftoffRegister reg = GetUnusedRegister(reg_class_for(type), {});
12001200
Fill(reg, src_offset, type);
12011201
Spill(dst_offset, reg, type);
12021202
}
@@ -1241,7 +1241,7 @@ void LiftoffAssembler::Spill(int offset, WasmValue value) {
12411241
// The scratch register will be required by str if multiple instructions
12421242
// are required to encode the offset, and so we cannot use it in that case.
12431243
if (!ImmediateFitsAddrMode2Instruction(dst.offset())) {
1244-
src = GetUnusedRegister(kGpReg).gp();
1244+
src = GetUnusedRegister(kGpReg, {}).gp();
12451245
} else {
12461246
src = temps.Acquire();
12471247
}
@@ -1783,7 +1783,7 @@ void LiftoffAssembler::emit_f32_copysign(DoubleRegister dst, DoubleRegister lhs,
17831783
DoubleRegister rhs) {
17841784
constexpr uint32_t kF32SignBit = uint32_t{1} << 31;
17851785
UseScratchRegisterScope temps(this);
1786-
Register scratch = GetUnusedRegister(kGpReg).gp();
1786+
Register scratch = GetUnusedRegister(kGpReg, {}).gp();
17871787
Register scratch2 = temps.Acquire();
17881788
VmovLow(scratch, lhs);
17891789
// Clear sign bit in {scratch}.
@@ -1802,7 +1802,7 @@ void LiftoffAssembler::emit_f64_copysign(DoubleRegister dst, DoubleRegister lhs,
18021802
// On arm, we cannot hold the whole f64 value in a gp register, so we just
18031803
// operate on the upper half (UH).
18041804
UseScratchRegisterScope temps(this);
1805-
Register scratch = GetUnusedRegister(kGpReg).gp();
1805+
Register scratch = GetUnusedRegister(kGpReg, {}).gp();
18061806
Register scratch2 = temps.Acquire();
18071807
VmovHigh(scratch, lhs);
18081808
// Clear sign bit in {scratch}.

src/wasm/baseline/ia32/liftoff-assembler-ia32.h

+10-10
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ inline Register GetTmpByteRegister(LiftoffAssembler* assm, Register candidate) {
130130
if (candidate.is_byte_register()) return candidate;
131131
// {GetUnusedRegister()} may insert move instructions to spill registers to
132132
// the stack. This is OK because {mov} does not change the status flags.
133-
return assm->GetUnusedRegister(liftoff::kByteRegs).gp();
133+
return assm->GetUnusedRegister(liftoff::kByteRegs, {}).gp();
134134
}
135135

136136
inline void MoveStackValue(LiftoffAssembler* assm, const Operand& src,
@@ -1349,7 +1349,7 @@ inline void EmitFloatMinOrMax(LiftoffAssembler* assm, DoubleRegister dst,
13491349

13501350
// We need one tmp register to extract the sign bit. Get it right at the
13511351
// beginning, such that the spilling code is not accidentially jumped over.
1352-
Register tmp = assm->GetUnusedRegister(kGpReg).gp();
1352+
Register tmp = assm->GetUnusedRegister(kGpReg, {}).gp();
13531353

13541354
#define dop(name, ...) \
13551355
do { \
@@ -1412,9 +1412,9 @@ void LiftoffAssembler::emit_f32_max(DoubleRegister dst, DoubleRegister lhs,
14121412
void LiftoffAssembler::emit_f32_copysign(DoubleRegister dst, DoubleRegister lhs,
14131413
DoubleRegister rhs) {
14141414
static constexpr int kF32SignBit = 1 << 31;
1415-
Register scratch = GetUnusedRegister(kGpReg).gp();
1416-
Register scratch2 =
1417-
GetUnusedRegister(kGpReg, LiftoffRegList::ForRegs(scratch)).gp();
1415+
LiftoffRegList pinned;
1416+
Register scratch = pinned.set(GetUnusedRegister(kGpReg, pinned)).gp();
1417+
Register scratch2 = GetUnusedRegister(kGpReg, pinned).gp();
14181418
Movd(scratch, lhs); // move {lhs} into {scratch}.
14191419
and_(scratch, Immediate(~kF32SignBit)); // clear sign bit in {scratch}.
14201420
Movd(scratch2, rhs); // move {rhs} into {scratch2}.
@@ -1541,9 +1541,9 @@ void LiftoffAssembler::emit_f64_copysign(DoubleRegister dst, DoubleRegister lhs,
15411541
static constexpr int kF32SignBit = 1 << 31;
15421542
// On ia32, we cannot hold the whole f64 value in a gp register, so we just
15431543
// operate on the upper half (UH).
1544-
Register scratch = GetUnusedRegister(kGpReg).gp();
1545-
Register scratch2 =
1546-
GetUnusedRegister(kGpReg, LiftoffRegList::ForRegs(scratch)).gp();
1544+
LiftoffRegList pinned;
1545+
Register scratch = pinned.set(GetUnusedRegister(kGpReg, pinned)).gp();
1546+
Register scratch2 = GetUnusedRegister(kGpReg, pinned).gp();
15471547

15481548
Pextrd(scratch, lhs, 1); // move UH of {lhs} into {scratch}.
15491549
and_(scratch, Immediate(~kF32SignBit)); // clear sign bit in {scratch}.
@@ -2381,7 +2381,7 @@ void LiftoffAssembler::emit_i8x16_shl(LiftoffRegister dst, LiftoffRegister lhs,
23812381
void LiftoffAssembler::emit_i8x16_shli(LiftoffRegister dst, LiftoffRegister lhs,
23822382
int32_t rhs) {
23832383
static constexpr RegClass tmp_rc = reg_class_for(ValueType::kI32);
2384-
LiftoffRegister tmp = GetUnusedRegister(tmp_rc);
2384+
LiftoffRegister tmp = GetUnusedRegister(tmp_rc, {});
23852385
byte shift = static_cast<byte>(rhs & 0x7);
23862386
if (CpuFeatures::IsSupported(AVX)) {
23872387
CpuFeatureScope scope(this, AVX);
@@ -3320,7 +3320,7 @@ void LiftoffAssembler::StackCheck(Label* ool_code, Register limit_address) {
33203320
}
33213321

33223322
void LiftoffAssembler::CallTrapCallbackForTesting() {
3323-
PrepareCallCFunction(0, GetUnusedRegister(kGpReg).gp());
3323+
PrepareCallCFunction(0, GetUnusedRegister(kGpReg, {}).gp());
33243324
CallCFunction(ExternalReference::wasm_call_trap_callback_for_testing(), 0);
33253325
}
33263326

src/wasm/baseline/liftoff-assembler.cc

+2-2
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ LiftoffRegister LiftoffAssembler::LoadI64HalfIntoRegister(VarState slot,
535535
if (slot.is_reg()) {
536536
return half == kLowWord ? slot.reg().low() : slot.reg().high();
537537
}
538-
LiftoffRegister dst = GetUnusedRegister(kGpReg);
538+
LiftoffRegister dst = GetUnusedRegister(kGpReg, {});
539539
if (slot.is_stack()) {
540540
FillI64Half(dst.gp(), slot.offset(), half);
541541
return dst;
@@ -574,7 +574,7 @@ void LiftoffAssembler::PrepareLoopArgs(int num) {
574574
if (!slot.is_const()) continue;
575575
RegClass rc =
576576
kNeedI64RegPair && slot.type() == kWasmI64 ? kGpRegPair : kGpReg;
577-
LiftoffRegister reg = GetUnusedRegister(rc);
577+
LiftoffRegister reg = GetUnusedRegister(rc, {});
578578
LoadConstant(reg, slot.constant());
579579
slot.MakeRegister(reg);
580580
cache_state_.inc_used(reg);

src/wasm/baseline/liftoff-assembler.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ class LiftoffAssembler : public TurboAssembler {
340340
// possible.
341341
LiftoffRegister GetUnusedRegister(
342342
RegClass rc, std::initializer_list<LiftoffRegister> try_first,
343-
LiftoffRegList pinned = {}) {
343+
LiftoffRegList pinned) {
344344
for (LiftoffRegister reg : try_first) {
345345
DCHECK_EQ(reg.reg_class(), rc);
346346
if (cache_state_.is_free(reg)) return reg;
@@ -349,7 +349,7 @@ class LiftoffAssembler : public TurboAssembler {
349349
}
350350

351351
// Get an unused register for class {rc}, potentially spilling to free one.
352-
LiftoffRegister GetUnusedRegister(RegClass rc, LiftoffRegList pinned = {}) {
352+
LiftoffRegister GetUnusedRegister(RegClass rc, LiftoffRegList pinned) {
353353
if (kNeedI64RegPair && rc == kGpRegPair) {
354354
LiftoffRegList candidates = kGpCacheRegList;
355355
Register low = pinned.set(GetUnusedRegister(candidates, pinned)).gp();

src/wasm/baseline/liftoff-compiler.cc

+26-25
Original file line numberDiff line numberDiff line change
@@ -495,7 +495,7 @@ class LiftoffCompiler {
495495
position, __ cache_state()->used_registers,
496496
RegisterDebugSideTableEntry(DebugSideTableBuilder::kAssumeSpilling)));
497497
OutOfLineCode& ool = out_of_line_code_.back();
498-
Register limit_address = __ GetUnusedRegister(kGpReg).gp();
498+
Register limit_address = __ GetUnusedRegister(kGpReg, {}).gp();
499499
LOAD_INSTANCE_FIELD(limit_address, StackLimitAddress, kSystemPointerSize);
500500
__ StackCheck(ool.label.get(), limit_address);
501501
__ bind(ool.continuation.get());
@@ -604,7 +604,7 @@ class LiftoffCompiler {
604604
*next_breakpoint_ptr_ == decoder->position());
605605
if (!has_breakpoint) {
606606
DEBUG_CODE_COMMENT("check hook on function call");
607-
Register flag = __ GetUnusedRegister(kGpReg).gp();
607+
Register flag = __ GetUnusedRegister(kGpReg, {}).gp();
608608
LOAD_INSTANCE_FIELD(flag, HookOnFunctionCallAddress,
609609
kSystemPointerSize);
610610
Label no_break;
@@ -923,8 +923,8 @@ class LiftoffCompiler {
923923
constexpr RegClass result_rc = reg_class_for(result_type);
924924
LiftoffRegister src = __ PopToRegister();
925925
LiftoffRegister dst = src_rc == result_rc
926-
? __ GetUnusedRegister(result_rc, {src})
927-
: __ GetUnusedRegister(result_rc);
926+
? __ GetUnusedRegister(result_rc, {src}, {})
927+
: __ GetUnusedRegister(result_rc, {});
928928
CallEmitFn(fn, dst, src);
929929
__ PushRegister(ValueType(result_type), dst);
930930
}
@@ -951,8 +951,9 @@ class LiftoffCompiler {
951951
static constexpr RegClass src_rc = reg_class_for(src_type);
952952
static constexpr RegClass dst_rc = reg_class_for(dst_type);
953953
LiftoffRegister src = __ PopToRegister();
954-
LiftoffRegister dst = src_rc == dst_rc ? __ GetUnusedRegister(dst_rc, {src})
955-
: __ GetUnusedRegister(dst_rc);
954+
LiftoffRegister dst = src_rc == dst_rc
955+
? __ GetUnusedRegister(dst_rc, {src}, {})
956+
: __ GetUnusedRegister(dst_rc, {});
956957
DCHECK_EQ(!!can_trap, trap_position > 0);
957958
Label* trap = can_trap ? AddOutOfLineTrap(
958959
trap_position,
@@ -1122,8 +1123,8 @@ class LiftoffCompiler {
11221123

11231124
LiftoffRegister lhs = __ PopToRegister();
11241125
LiftoffRegister dst = src_rc == result_rc
1125-
? __ GetUnusedRegister(result_rc, {lhs})
1126-
: __ GetUnusedRegister(result_rc);
1126+
? __ GetUnusedRegister(result_rc, {lhs}, {})
1127+
: __ GetUnusedRegister(result_rc, {});
11271128

11281129
CallEmitFn(fnImm, dst, lhs, imm);
11291130
__ PushRegister(ValueType(result_type), dst);
@@ -1141,8 +1142,8 @@ class LiftoffCompiler {
11411142
LiftoffRegister rhs = __ PopToRegister();
11421143
LiftoffRegister lhs = __ PopToRegister(LiftoffRegList::ForRegs(rhs));
11431144
LiftoffRegister dst = src_rc == result_rc
1144-
? __ GetUnusedRegister(result_rc, {lhs, rhs})
1145-
: __ GetUnusedRegister(result_rc);
1145+
? __ GetUnusedRegister(result_rc, {lhs, rhs}, {})
1146+
: __ GetUnusedRegister(result_rc, {});
11461147

11471148
if (swap_lhs_rhs) std::swap(lhs, rhs);
11481149

@@ -1483,20 +1484,20 @@ class LiftoffCompiler {
14831484
if (value_i32 == value) {
14841485
__ PushConstant(kWasmI64, value_i32);
14851486
} else {
1486-
LiftoffRegister reg = __ GetUnusedRegister(reg_class_for(kWasmI64));
1487+
LiftoffRegister reg = __ GetUnusedRegister(reg_class_for(kWasmI64), {});
14871488
__ LoadConstant(reg, WasmValue(value));
14881489
__ PushRegister(kWasmI64, reg);
14891490
}
14901491
}
14911492

14921493
void F32Const(FullDecoder* decoder, Value* result, float value) {
1493-
LiftoffRegister reg = __ GetUnusedRegister(kFpReg);
1494+
LiftoffRegister reg = __ GetUnusedRegister(kFpReg, {});
14941495
__ LoadConstant(reg, WasmValue(value));
14951496
__ PushRegister(kWasmF32, reg);
14961497
}
14971498

14981499
void F64Const(FullDecoder* decoder, Value* result, double value) {
1499-
LiftoffRegister reg = __ GetUnusedRegister(kFpReg);
1500+
LiftoffRegister reg = __ GetUnusedRegister(kFpReg, {});
15001501
__ LoadConstant(reg, WasmValue(value));
15011502
__ PushRegister(kWasmF64, reg);
15021503
}
@@ -1546,7 +1547,7 @@ class LiftoffCompiler {
15461547
break;
15471548
case kStack: {
15481549
auto rc = reg_class_for(imm.type);
1549-
LiftoffRegister reg = __ GetUnusedRegister(rc);
1550+
LiftoffRegister reg = __ GetUnusedRegister(rc, {});
15501551
__ Fill(reg, slot.offset(), imm.type);
15511552
__ PushRegister(slot.type(), reg);
15521553
break;
@@ -1570,7 +1571,7 @@ class LiftoffCompiler {
15701571
}
15711572
DCHECK_EQ(type, __ local_type(local_index));
15721573
RegClass rc = reg_class_for(type);
1573-
LiftoffRegister dst_reg = __ GetUnusedRegister(rc);
1574+
LiftoffRegister dst_reg = __ GetUnusedRegister(rc, {});
15741575
__ Fill(dst_reg, src_slot.offset(), type);
15751576
*dst_slot = LiftoffAssembler::VarState(type, dst_reg, dst_slot->offset());
15761577
__ cache_state()->inc_used(dst_reg);
@@ -1609,7 +1610,7 @@ class LiftoffCompiler {
16091610

16101611
Register GetGlobalBaseAndOffset(const WasmGlobal* global,
16111612
LiftoffRegList* pinned, uint32_t* offset) {
1612-
Register addr = pinned->set(__ GetUnusedRegister(kGpReg)).gp();
1613+
Register addr = pinned->set(__ GetUnusedRegister(kGpReg, {})).gp();
16131614
if (global->mutability && global->imported) {
16141615
LOAD_INSTANCE_FIELD(addr, ImportedMutableGlobals, kSystemPointerSize);
16151616
__ Load(LiftoffRegister(addr), addr, no_reg,
@@ -1675,8 +1676,8 @@ class LiftoffCompiler {
16751676
DCHECK_EQ(type, __ cache_state()->stack_state.end()[-2].type());
16761677
LiftoffRegister false_value = pinned.set(__ PopToRegister(pinned));
16771678
LiftoffRegister true_value = __ PopToRegister(pinned);
1678-
LiftoffRegister dst =
1679-
__ GetUnusedRegister(true_value.reg_class(), {true_value, false_value});
1679+
LiftoffRegister dst = __ GetUnusedRegister(true_value.reg_class(),
1680+
{true_value, false_value}, {});
16801681
__ PushRegister(type, dst);
16811682

16821683
// Now emit the actual code to move either {true_value} or {false_value}
@@ -2075,7 +2076,7 @@ class LiftoffCompiler {
20752076
}
20762077

20772078
void CurrentMemoryPages(FullDecoder* decoder, Value* result) {
2078-
Register mem_size = __ GetUnusedRegister(kGpReg).gp();
2079+
Register mem_size = __ GetUnusedRegister(kGpReg, {}).gp();
20792080
LOAD_INSTANCE_FIELD(mem_size, MemorySize, kSystemPointerSize);
20802081
__ emit_ptrsize_shri(mem_size, mem_size, kWasmPageSizeLog2);
20812082
__ PushRegister(kWasmI32, LiftoffRegister(mem_size));
@@ -2344,7 +2345,7 @@ class LiftoffCompiler {
23442345
src_rc == result_rc
23452346
? __ GetUnusedRegister(result_rc, {src3},
23462347
LiftoffRegList::ForRegs(src1, src2))
2347-
: __ GetUnusedRegister(result_rc);
2348+
: __ GetUnusedRegister(result_rc, {});
23482349
CallEmitFn(fn, dst, src1, src2, src3);
23492350
__ PushRegister(ValueType(result_type), dst);
23502351
}
@@ -2360,14 +2361,14 @@ class LiftoffCompiler {
23602361
int32_t imm = rhs_slot.i32_const();
23612362

23622363
LiftoffRegister operand = __ PopToRegister();
2363-
LiftoffRegister dst = __ GetUnusedRegister(result_rc, {operand});
2364+
LiftoffRegister dst = __ GetUnusedRegister(result_rc, {operand}, {});
23642365

23652366
CallEmitFn(fnImm, dst, operand, imm);
23662367
__ PushRegister(kWasmS128, dst);
23672368
} else {
23682369
LiftoffRegister count = __ PopToRegister();
23692370
LiftoffRegister operand = __ PopToRegister();
2370-
LiftoffRegister dst = __ GetUnusedRegister(result_rc, {operand});
2371+
LiftoffRegister dst = __ GetUnusedRegister(result_rc, {operand}, {});
23712372

23722373
CallEmitFn(fn, dst, operand, count);
23732374
__ PushRegister(kWasmS128, dst);
@@ -2695,8 +2696,8 @@ class LiftoffCompiler {
26952696
static constexpr RegClass result_rc = reg_class_for(result_type);
26962697
LiftoffRegister lhs = __ PopToRegister();
26972698
LiftoffRegister dst = src_rc == result_rc
2698-
? __ GetUnusedRegister(result_rc, {lhs})
2699-
: __ GetUnusedRegister(result_rc);
2699+
? __ GetUnusedRegister(result_rc, {lhs}, {})
2700+
: __ GetUnusedRegister(result_rc, {});
27002701
fn(dst, lhs, imm.lane);
27012702
__ PushRegister(ValueType(result_type), dst);
27022703
}
@@ -2722,7 +2723,7 @@ class LiftoffCompiler {
27222723
(src2_rc == result_rc || pin_src2)
27232724
? __ GetUnusedRegister(result_rc, {src1},
27242725
LiftoffRegList::ForRegs(src2))
2725-
: __ GetUnusedRegister(result_rc, {src1});
2726+
: __ GetUnusedRegister(result_rc, {src1}, {});
27262727
fn(dst, src1, src2, imm.lane);
27272728
__ PushRegister(kWasmS128, dst);
27282729
}

src/wasm/baseline/mips/liftoff-assembler-mips.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ void LiftoffAssembler::StoreCallerFrameSlot(LiftoffRegister src,
603603
void LiftoffAssembler::MoveStackValue(uint32_t dst_offset, uint32_t src_offset,
604604
ValueType type) {
605605
DCHECK_NE(dst_offset, src_offset);
606-
LiftoffRegister reg = GetUnusedRegister(reg_class_for(type));
606+
LiftoffRegister reg = GetUnusedRegister(reg_class_for(type), {});
607607
Fill(reg, src_offset, type);
608608
Spill(dst_offset, reg, type);
609609
}
@@ -646,13 +646,13 @@ void LiftoffAssembler::Spill(int offset, WasmValue value) {
646646
MemOperand dst = liftoff::GetStackSlot(offset);
647647
switch (value.type().kind()) {
648648
case ValueType::kI32: {
649-
LiftoffRegister tmp = GetUnusedRegister(kGpReg);
649+
LiftoffRegister tmp = GetUnusedRegister(kGpReg, {});
650650
TurboAssembler::li(tmp.gp(), Operand(value.to_i32()));
651651
sw(tmp.gp(), dst);
652652
break;
653653
}
654654
case ValueType::kI64: {
655-
LiftoffRegister tmp = GetUnusedRegister(kGpRegPair);
655+
LiftoffRegister tmp = GetUnusedRegister(kGpRegPair, {});
656656

657657
int32_t low_word = value.to_i64();
658658
int32_t high_word = value.to_i64() >> 32;
@@ -2273,7 +2273,7 @@ void LiftoffAssembler::StackCheck(Label* ool_code, Register limit_address) {
22732273
}
22742274

22752275
void LiftoffAssembler::CallTrapCallbackForTesting() {
2276-
PrepareCallCFunction(0, GetUnusedRegister(kGpReg).gp());
2276+
PrepareCallCFunction(0, GetUnusedRegister(kGpReg, {}).gp());
22772277
CallCFunction(ExternalReference::wasm_call_trap_callback_for_testing(), 0);
22782278
}
22792279

src/wasm/baseline/mips64/liftoff-assembler-mips64.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,7 @@ void LiftoffAssembler::StoreCallerFrameSlot(LiftoffRegister src,
532532
void LiftoffAssembler::MoveStackValue(uint32_t dst_offset, uint32_t src_offset,
533533
ValueType type) {
534534
DCHECK_NE(dst_offset, src_offset);
535-
LiftoffRegister reg = GetUnusedRegister(reg_class_for(type));
535+
LiftoffRegister reg = GetUnusedRegister(reg_class_for(type), {});
536536
Fill(reg, src_offset, type);
537537
Spill(dst_offset, reg, type);
538538
}
@@ -582,13 +582,13 @@ void LiftoffAssembler::Spill(int offset, WasmValue value) {
582582
MemOperand dst = liftoff::GetStackSlot(offset);
583583
switch (value.type().kind()) {
584584
case ValueType::kI32: {
585-
LiftoffRegister tmp = GetUnusedRegister(kGpReg);
585+
LiftoffRegister tmp = GetUnusedRegister(kGpReg, {});
586586
TurboAssembler::li(tmp.gp(), Operand(value.to_i32()));
587587
sw(tmp.gp(), dst);
588588
break;
589589
}
590590
case ValueType::kI64: {
591-
LiftoffRegister tmp = GetUnusedRegister(kGpReg);
591+
LiftoffRegister tmp = GetUnusedRegister(kGpReg, {});
592592
TurboAssembler::li(tmp.gp(), value.to_i64());
593593
sd(tmp.gp(), dst);
594594
break;
@@ -2221,7 +2221,7 @@ void LiftoffAssembler::StackCheck(Label* ool_code, Register limit_address) {
22212221
}
22222222

22232223
void LiftoffAssembler::CallTrapCallbackForTesting() {
2224-
PrepareCallCFunction(0, GetUnusedRegister(kGpReg).gp());
2224+
PrepareCallCFunction(0, GetUnusedRegister(kGpReg, {}).gp());
22252225
CallCFunction(ExternalReference::wasm_call_trap_callback_for_testing(), 0);
22262226
}
22272227

0 commit comments

Comments
 (0)