# HG changeset patch # User asaha # Date 1456875260 28800 # Node ID 59806927fa4d8a88cb3e314d50a8777763755084 # Parent c42cb5db360123ace7f1f325cfec8e8fa3a6ccfe# Parent 6875c2bf2dcb6e4a381cbdfdce43fe1e489f9635 Merge diff -r c42cb5db3601 -r 59806927fa4d .hgtags --- a/.hgtags Tue Mar 01 15:19:31 2016 -0800 +++ b/.hgtags Tue Mar 01 15:34:20 2016 -0800 @@ -822,6 +822,7 @@ 8c791dd1c24d85ebd18b03d49185c2a25263c129 jdk8u75-b07 e4a935cb6f7178912fd653e2a9514eadec7935ab jdk8u75-b08 e97c45c377eb8d022cfe24b73737fa312107e0a5 jdk8u75-b09 +d44c7e324682a30e064503ef9582d83a41f4173e jdk8u75-b10 d7b01fb81aa8a5437cb03bc36afe15cf0e55fb89 jdk8u76-b00 c1679cc87ba045219169cabb6b9b378c2b5cc578 jdk8u76-b01 218483967e52b419d885d34af4488a81c5133804 jdk8u76-b02 @@ -832,3 +833,4 @@ 7d1074c74d6000ec8257917ebfcee3fed4249f7d jdk8u76-b07 392f8722fc513e28f78c5c563d51af7dc8466b29 jdk8u76-b08 3bf0f5b8a892defd0bf9731b4e15926881fcda74 jdk8u76-b09 +a2b0ee820059a44be558a2d435b7d85ed5a8b63a jdk8u76-b10 diff -r c42cb5db3601 -r 59806927fa4d src/share/vm/oops/typeArrayOop.hpp --- a/src/share/vm/oops/typeArrayOop.hpp Tue Mar 01 15:19:31 2016 -0800 +++ b/src/share/vm/oops/typeArrayOop.hpp Tue Mar 01 15:34:20 2016 -0800 @@ -96,7 +96,7 @@ void byte_at_put(int which, jbyte contents) { *byte_at_addr(which) = contents; } jboolean bool_at(int which) const { return *bool_at_addr(which); } - void bool_at_put(int which, jboolean contents) { *bool_at_addr(which) = contents; } + void bool_at_put(int which, jboolean contents) { *bool_at_addr(which) = (((jint)contents) & 1); } jchar char_at(int which) const { return *char_at_addr(which); } void char_at_put(int which, jchar contents) { *char_at_addr(which) = contents; } diff -r c42cb5db3601 -r 59806927fa4d src/share/vm/runtime/deoptimization.cpp --- a/src/share/vm/runtime/deoptimization.cpp Tue Mar 01 15:19:31 2016 -0800 +++ b/src/share/vm/runtime/deoptimization.cpp Tue Mar 01 15:34:20 2016 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2016, 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 @@ -847,13 +847,25 @@ _obj->int_field_put(offset, (jint)*((jint*)&val)); break; - case T_SHORT: case T_CHAR: // 2 bytes + case T_SHORT: assert(value->type() == T_INT, "Agreement."); val = value->get_int(); _obj->short_field_put(offset, (jshort)*((jint*)&val)); break; - case T_BOOLEAN: case T_BYTE: // 1 byte + case T_CHAR: + assert(value->type() == T_INT, "Agreement."); + val = value->get_int(); + _obj->char_field_put(offset, (jchar)*((jint*)&val)); + break; + + case T_BYTE: + assert(value->type() == T_INT, "Agreement."); + val = value->get_int(); + _obj->byte_field_put(offset, (jbyte)*((jint*)&val)); + break; + + case T_BOOLEAN: assert(value->type() == T_INT, "Agreement."); val = value->get_int(); _obj->bool_field_put(offset, (jboolean)*((jint*)&val)); @@ -899,13 +911,25 @@ obj->int_at_put(index, (jint)*((jint*)&val)); break; - case T_SHORT: case T_CHAR: // 2 bytes + case T_SHORT: assert(value->type() == T_INT, "Agreement."); val = value->get_int(); obj->short_at_put(index, (jshort)*((jint*)&val)); break; - case T_BOOLEAN: case T_BYTE: // 1 byte + case T_CHAR: + assert(value->type() == T_INT, "Agreement."); + val = value->get_int(); + obj->char_at_put(index, (jchar)*((jint*)&val)); + break; + + case T_BYTE: + assert(value->type() == T_INT, "Agreement."); + val = value->get_int(); + obj->byte_at_put(index, (jbyte)*((jint*)&val)); + break; + + case T_BOOLEAN: assert(value->type() == T_INT, "Agreement."); val = value->get_int(); obj->bool_at_put(index, (jboolean)*((jint*)&val));