Mon, 29 Feb 2016 11:49:08 -0800
Merge
.hgtags | file | annotate | diff | comparison | revisions |
1.1 --- a/.hgtags Mon Feb 22 13:23:02 2016 -0800 1.2 +++ b/.hgtags Mon Feb 29 11:49:08 2016 -0800 1.3 @@ -818,6 +818,7 @@ 1.4 8c791dd1c24d85ebd18b03d49185c2a25263c129 jdk8u75-b07 1.5 e4a935cb6f7178912fd653e2a9514eadec7935ab jdk8u75-b08 1.6 e97c45c377eb8d022cfe24b73737fa312107e0a5 jdk8u75-b09 1.7 +d44c7e324682a30e064503ef9582d83a41f4173e jdk8u75-b10 1.8 d7b01fb81aa8a5437cb03bc36afe15cf0e55fb89 jdk8u76-b00 1.9 c1679cc87ba045219169cabb6b9b378c2b5cc578 jdk8u76-b01 1.10 218483967e52b419d885d34af4488a81c5133804 jdk8u76-b02
2.1 --- a/src/share/vm/oops/typeArrayOop.hpp Mon Feb 22 13:23:02 2016 -0800 2.2 +++ b/src/share/vm/oops/typeArrayOop.hpp Mon Feb 29 11:49:08 2016 -0800 2.3 @@ -96,7 +96,7 @@ 2.4 void byte_at_put(int which, jbyte contents) { *byte_at_addr(which) = contents; } 2.5 2.6 jboolean bool_at(int which) const { return *bool_at_addr(which); } 2.7 - void bool_at_put(int which, jboolean contents) { *bool_at_addr(which) = contents; } 2.8 + void bool_at_put(int which, jboolean contents) { *bool_at_addr(which) = (((jint)contents) & 1); } 2.9 2.10 jchar char_at(int which) const { return *char_at_addr(which); } 2.11 void char_at_put(int which, jchar contents) { *char_at_addr(which) = contents; }
3.1 --- a/src/share/vm/runtime/deoptimization.cpp Mon Feb 22 13:23:02 2016 -0800 3.2 +++ b/src/share/vm/runtime/deoptimization.cpp Mon Feb 29 11:49:08 2016 -0800 3.3 @@ -1,5 +1,5 @@ 3.4 /* 3.5 - * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. 3.6 + * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved. 3.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3.8 * 3.9 * This code is free software; you can redistribute it and/or modify it 3.10 @@ -847,13 +847,25 @@ 3.11 _obj->int_field_put(offset, (jint)*((jint*)&val)); 3.12 break; 3.13 3.14 - case T_SHORT: case T_CHAR: // 2 bytes 3.15 + case T_SHORT: 3.16 assert(value->type() == T_INT, "Agreement."); 3.17 val = value->get_int(); 3.18 _obj->short_field_put(offset, (jshort)*((jint*)&val)); 3.19 break; 3.20 3.21 - case T_BOOLEAN: case T_BYTE: // 1 byte 3.22 + case T_CHAR: 3.23 + assert(value->type() == T_INT, "Agreement."); 3.24 + val = value->get_int(); 3.25 + _obj->char_field_put(offset, (jchar)*((jint*)&val)); 3.26 + break; 3.27 + 3.28 + case T_BYTE: 3.29 + assert(value->type() == T_INT, "Agreement."); 3.30 + val = value->get_int(); 3.31 + _obj->byte_field_put(offset, (jbyte)*((jint*)&val)); 3.32 + break; 3.33 + 3.34 + case T_BOOLEAN: 3.35 assert(value->type() == T_INT, "Agreement."); 3.36 val = value->get_int(); 3.37 _obj->bool_field_put(offset, (jboolean)*((jint*)&val)); 3.38 @@ -899,13 +911,25 @@ 3.39 obj->int_at_put(index, (jint)*((jint*)&val)); 3.40 break; 3.41 3.42 - case T_SHORT: case T_CHAR: // 2 bytes 3.43 + case T_SHORT: 3.44 assert(value->type() == T_INT, "Agreement."); 3.45 val = value->get_int(); 3.46 obj->short_at_put(index, (jshort)*((jint*)&val)); 3.47 break; 3.48 3.49 - case T_BOOLEAN: case T_BYTE: // 1 byte 3.50 + case T_CHAR: 3.51 + assert(value->type() == T_INT, "Agreement."); 3.52 + val = value->get_int(); 3.53 + obj->char_at_put(index, (jchar)*((jint*)&val)); 3.54 + break; 3.55 + 3.56 + case T_BYTE: 3.57 + assert(value->type() == T_INT, "Agreement."); 3.58 + val = value->get_int(); 3.59 + obj->byte_at_put(index, (jbyte)*((jint*)&val)); 3.60 + break; 3.61 + 3.62 + case T_BOOLEAN: 3.63 assert(value->type() == T_INT, "Agreement."); 3.64 val = value->get_int(); 3.65 obj->bool_at_put(index, (jboolean)*((jint*)&val));