@@ -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);
@@ -2689,8 +2690,8 @@ class LiftoffCompiler {
26892690 static constexpr RegClass result_rc = reg_class_for (result_type);
26902691 LiftoffRegister lhs = __ PopToRegister ();
26912692 LiftoffRegister dst = src_rc == result_rc
2692- ? __ GetUnusedRegister (result_rc, {lhs})
2693- : __ GetUnusedRegister (result_rc);
2693+ ? __ GetUnusedRegister (result_rc, {lhs}, {} )
2694+ : __ GetUnusedRegister (result_rc, {} );
26942695 fn (dst, lhs, imm.lane );
26952696 __ PushRegister (ValueType (result_type), dst);
26962697 }
@@ -2716,7 +2717,7 @@ class LiftoffCompiler {
27162717 (src2_rc == result_rc || pin_src2)
27172718 ? __ GetUnusedRegister (result_rc, {src1},
27182719 LiftoffRegList::ForRegs (src2))
2719- : __ GetUnusedRegister (result_rc, {src1});
2720+ : __ GetUnusedRegister (result_rc, {src1}, {} );
27202721 fn (dst, src1, src2, imm.lane );
27212722 __ PushRegister (kWasmS128 , dst);
27222723 }
0 commit comments