提交 a0c70fb2 编写于 作者: A asaha

Merge

......@@ -818,6 +818,7 @@ ca3b8c8e390ab0540b0cc2e5def869b38e460d86 jdk8u75-b01
8c791dd1c24d85ebd18b03d49185c2a25263c129 jdk8u75-b07
e4a935cb6f7178912fd653e2a9514eadec7935ab jdk8u75-b08
e97c45c377eb8d022cfe24b73737fa312107e0a5 jdk8u75-b09
d44c7e324682a30e064503ef9582d83a41f4173e jdk8u75-b10
d7b01fb81aa8a5437cb03bc36afe15cf0e55fb89 jdk8u76-b00
c1679cc87ba045219169cabb6b9b378c2b5cc578 jdk8u76-b01
218483967e52b419d885d34af4488a81c5133804 jdk8u76-b02
......
......@@ -96,7 +96,7 @@ class typeArrayOopDesc : public arrayOopDesc {
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; }
......
/*
* 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 @@ public:
_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 @@ void Deoptimization::reassign_type_array_elements(frame* fr, RegisterMap* reg_ma
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));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册