Skip to content

Commit b1d1499

Browse files
committed
8256956: RegisterImpl::max_slots_per_register is incorrect on AMD64
Reviewed-by: thartmann, vlivanov
1 parent 20020d1 commit b1d1499

File tree

1 file changed

+2
-5
lines changed

1 file changed

+2
-5
lines changed

src/hotspot/cpu/x86/register_x86.hpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class RegisterImpl: public AbstractRegisterImpl {
5050
#else
5151
number_of_registers = 16,
5252
number_of_byte_registers = 16,
53-
max_slots_per_register = 1
53+
max_slots_per_register = 2
5454
#endif // AMD64
5555
};
5656

@@ -256,10 +256,7 @@ class ConcreteRegisterImpl : public AbstractRegisterImpl {
256256
// There is no requirement that any ordering here matches any ordering c2 gives
257257
// it's optoregs.
258258

259-
number_of_registers = RegisterImpl::number_of_registers +
260-
#ifdef AMD64
261-
RegisterImpl::number_of_registers + // "H" half of a 64bit register
262-
#endif // AMD64
259+
number_of_registers = RegisterImpl::number_of_registers * RegisterImpl::max_slots_per_register +
263260
2 * FloatRegisterImpl::number_of_registers +
264261
XMMRegisterImpl::max_slots_per_register * XMMRegisterImpl::number_of_registers +
265262
KRegisterImpl::number_of_registers + // mask registers

0 commit comments

Comments
 (0)