--- old/src/hotspot/cpu/x86/macroAssembler_x86.hpp 2018-03-21 12:02:51.036047143 +0100 +++ new/src/hotspot/cpu/x86/macroAssembler_x86.hpp 2018-03-21 12:02:50.772041228 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -97,11 +97,17 @@ void null_check(Register reg, int offset = -1); static bool needs_explicit_null_check(intptr_t offset); + void test_klass_is_value(Register klass, Register temp_reg, Label& is_value); + void test_field_is_flattenable(Register flags, Register temp_reg, Label& is_flattenable); void test_field_is_not_flattenable(Register flags, Register temp_reg, Label& notFlattenable); void test_field_is_flattened(Register flags, Register temp_reg, Label& is_flattened); void test_value_is_not_buffered(Register value, Register temp_reg, Label& not_buffered); + // Check klass/oops is flat value type array (oop->_klass->_layout_helper & vt_bit) + void test_flat_array_klass(Register klass, Register temp_reg, Label& is_flat_array); + void test_flat_array_oop(Register oop, Register temp_reg, Label& is_flat_array); + // Required platform-specific helpers for Label::patch_instructions. // They _shadow_ the declarations in AbstractAssembler, which are undefined. void pd_patch_instruction(address branch, address target) {