提交 a0c70fb2 编写于 作者: A asaha

Merge

...@@ -818,6 +818,7 @@ ca3b8c8e390ab0540b0cc2e5def869b38e460d86 jdk8u75-b01 ...@@ -818,6 +818,7 @@ ca3b8c8e390ab0540b0cc2e5def869b38e460d86 jdk8u75-b01
8c791dd1c24d85ebd18b03d49185c2a25263c129 jdk8u75-b07 8c791dd1c24d85ebd18b03d49185c2a25263c129 jdk8u75-b07
e4a935cb6f7178912fd653e2a9514eadec7935ab jdk8u75-b08 e4a935cb6f7178912fd653e2a9514eadec7935ab jdk8u75-b08
e97c45c377eb8d022cfe24b73737fa312107e0a5 jdk8u75-b09 e97c45c377eb8d022cfe24b73737fa312107e0a5 jdk8u75-b09
d44c7e324682a30e064503ef9582d83a41f4173e jdk8u75-b10
d7b01fb81aa8a5437cb03bc36afe15cf0e55fb89 jdk8u76-b00 d7b01fb81aa8a5437cb03bc36afe15cf0e55fb89 jdk8u76-b00
c1679cc87ba045219169cabb6b9b378c2b5cc578 jdk8u76-b01 c1679cc87ba045219169cabb6b9b378c2b5cc578 jdk8u76-b01
218483967e52b419d885d34af4488a81c5133804 jdk8u76-b02 218483967e52b419d885d34af4488a81c5133804 jdk8u76-b02
......
...@@ -96,7 +96,7 @@ class typeArrayOopDesc : public arrayOopDesc { ...@@ -96,7 +96,7 @@ class typeArrayOopDesc : public arrayOopDesc {
void byte_at_put(int which, jbyte contents) { *byte_at_addr(which) = contents; } void byte_at_put(int which, jbyte contents) { *byte_at_addr(which) = contents; }
jboolean bool_at(int which) const { return *bool_at_addr(which); } 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); } jchar char_at(int which) const { return *char_at_addr(which); }
void char_at_put(int which, jchar contents) { *char_at_addr(which) = contents; } 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. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -847,13 +847,25 @@ public: ...@@ -847,13 +847,25 @@ public:
_obj->int_field_put(offset, (jint)*((jint*)&val)); _obj->int_field_put(offset, (jint)*((jint*)&val));
break; break;
case T_SHORT: case T_CHAR: // 2 bytes case T_SHORT:
assert(value->type() == T_INT, "Agreement."); assert(value->type() == T_INT, "Agreement.");
val = value->get_int(); val = value->get_int();
_obj->short_field_put(offset, (jshort)*((jint*)&val)); _obj->short_field_put(offset, (jshort)*((jint*)&val));
break; 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."); assert(value->type() == T_INT, "Agreement.");
val = value->get_int(); val = value->get_int();
_obj->bool_field_put(offset, (jboolean)*((jint*)&val)); _obj->bool_field_put(offset, (jboolean)*((jint*)&val));
...@@ -899,13 +911,25 @@ void Deoptimization::reassign_type_array_elements(frame* fr, RegisterMap* reg_ma ...@@ -899,13 +911,25 @@ void Deoptimization::reassign_type_array_elements(frame* fr, RegisterMap* reg_ma
obj->int_at_put(index, (jint)*((jint*)&val)); obj->int_at_put(index, (jint)*((jint*)&val));
break; break;
case T_SHORT: case T_CHAR: // 2 bytes case T_SHORT:
assert(value->type() == T_INT, "Agreement."); assert(value->type() == T_INT, "Agreement.");
val = value->get_int(); val = value->get_int();
obj->short_at_put(index, (jshort)*((jint*)&val)); obj->short_at_put(index, (jshort)*((jint*)&val));
break; 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."); assert(value->type() == T_INT, "Agreement.");
val = value->get_int(); val = value->get_int();
obj->bool_at_put(index, (jboolean)*((jint*)&val)); 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.
先完成此消息的编辑!
想要评论请 注册