changeset in /hg/icedtea6: 2009-03-13 Gary Benson <gbenson at red...
Gary Benson
gbenson at redhat.com
Fri Mar 13 06:56:23 PDT 2009
changeset 96d1de001c8d in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=96d1de001c8d
description:
2009-03-13 Gary Benson <gbenson at redhat.com>
* ports/hotspot/src/share/vm/shark/sharkValue.hpp
(SharkValue::create_generic): Make zero_checked argument mandatory.
(SharkValue::create_jint): Fixups for the above.
(SharkValue::create_jlong): Likewise.
(SharkValue::create_jfloat): Likewise.
(SharkValue::create_jdouble): Likewise.
(SharkValue::create_jobject): Likewise.
(SharkValue::jint_constant): Likewise.
(SharkValue::jlong_constant): Likewise.
(SharkValue::null): Likewise.
* ports/hotspot/src/share/vm/shark/sharkState.cpp
(SharkState::merge): Likewise.
(SharkState::cache_after_Java_call): Likewise.
(SharkEntryState::SharkEntryState): Likewise.
(SharkPHIState::SharkPHIState): Likewise.
* ports/hotspot/src/share/vm/shark/sharkBlock.hpp
(SharkBlock::do_ldc): Likewise.
* ports/hotspot/src/share/vm/shark/sharkBlock.cpp
(SharkBlock::parse_bytecode): Likewise.
(SharkBlock::do_div_or_rem): Likewise.
(SharkBlock::do_field_access): Likewise.
(SharkBlock::do_lcmp): Likewise.
(SharkBlock::do_fcmp): Likewise.
* ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
(SharkTopLevelBlock::handle_exception): Likewise.
(SharkTopLevelBlock::do_arraylength): Likewise.
(SharkTopLevelBlock::do_aload): Likewise.
(SharkTopLevelBlock::do_instance_check): Likewise.
(SharkTopLevelBlock::do_new): Likewise.
(SharkTopLevelBlock::do_newarray): Likewise.
(SharkTopLevelBlock::do_anewarray): Likewise.
(SharkTopLevelBlock::do_multianewarray): Likewise.
* ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp
(SharkCacher::process_stack_slot): Likewise.
(SharkCacher::process_local_slot): Likewise.
* ports/hotspot/src/share/vm/shark/sharkIntrinsics.cpp
(SharkIntrinsics::do_Math_minmax): Likewise.
(SharkIntrinsics::do_Object_getClass): Likewise.
(SharkIntrinsics::do_System_currentTimeMillis): Likewise.
(SharkIntrinsics::do_Thread_currentThread): Likewise.
(SharkIntrinsics::do_Unsafe_compareAndSwapInt): Likewise.
diffstat:
8 files changed, 163 insertions(+), 119 deletions(-)
ChangeLog | 44 +++++++++
ports/hotspot/src/share/vm/shark/sharkBlock.cpp | 73 +++++++--------
ports/hotspot/src/share/vm/shark/sharkBlock.hpp | 2
ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp | 12 +-
ports/hotspot/src/share/vm/shark/sharkIntrinsics.cpp | 51 +++++-----
ports/hotspot/src/share/vm/shark/sharkState.cpp | 29 +++--
ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp | 37 +++----
ports/hotspot/src/share/vm/shark/sharkValue.hpp | 34 ++----
diffs (truncated from 748 to 500 lines):
diff -r 5a1daec06e6d -r 96d1de001c8d ChangeLog
--- a/ChangeLog Fri Mar 13 09:39:47 2009 -0400
+++ b/ChangeLog Fri Mar 13 09:55:22 2009 -0400
@@ -1,3 +1,47 @@ 2009-03-13 Gary Benson <gbenson at redhat
+2009-03-13 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/share/vm/shark/sharkValue.hpp
+ (SharkValue::create_generic): Make zero_checked argument mandatory.
+ (SharkValue::create_jint): Fixups for the above.
+ (SharkValue::create_jlong): Likewise.
+ (SharkValue::create_jfloat): Likewise.
+ (SharkValue::create_jdouble): Likewise.
+ (SharkValue::create_jobject): Likewise.
+ (SharkValue::jint_constant): Likewise.
+ (SharkValue::jlong_constant): Likewise.
+ (SharkValue::null): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkState.cpp
+ (SharkState::merge): Likewise.
+ (SharkState::cache_after_Java_call): Likewise.
+ (SharkEntryState::SharkEntryState): Likewise.
+ (SharkPHIState::SharkPHIState): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkBlock.hpp
+ (SharkBlock::do_ldc): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkBlock.cpp
+ (SharkBlock::parse_bytecode): Likewise.
+ (SharkBlock::do_div_or_rem): Likewise.
+ (SharkBlock::do_field_access): Likewise.
+ (SharkBlock::do_lcmp): Likewise.
+ (SharkBlock::do_fcmp): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
+ (SharkTopLevelBlock::handle_exception): Likewise.
+ (SharkTopLevelBlock::do_arraylength): Likewise.
+ (SharkTopLevelBlock::do_aload): Likewise.
+ (SharkTopLevelBlock::do_instance_check): Likewise.
+ (SharkTopLevelBlock::do_new): Likewise.
+ (SharkTopLevelBlock::do_newarray): Likewise.
+ (SharkTopLevelBlock::do_anewarray): Likewise.
+ (SharkTopLevelBlock::do_multianewarray): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp
+ (SharkCacher::process_stack_slot): Likewise.
+ (SharkCacher::process_local_slot): Likewise.
+ * ports/hotspot/src/share/vm/shark/sharkIntrinsics.cpp
+ (SharkIntrinsics::do_Math_minmax): Likewise.
+ (SharkIntrinsics::do_Object_getClass): Likewise.
+ (SharkIntrinsics::do_System_currentTimeMillis): Likewise.
+ (SharkIntrinsics::do_Thread_currentThread): Likewise.
+ (SharkIntrinsics::do_Unsafe_compareAndSwapInt): Likewise.
+
2009-03-13 Gary Benson <gbenson at redhat.com>
* ports/hotspot/src/share/vm/shark/sharkInliner.cpp
diff -r 5a1daec06e6d -r 96d1de001c8d ports/hotspot/src/share/vm/shark/sharkBlock.cpp
--- a/ports/hotspot/src/share/vm/shark/sharkBlock.cpp Fri Mar 13 09:39:47 2009 -0400
+++ b/ports/hotspot/src/share/vm/shark/sharkBlock.cpp Fri Mar 13 09:55:22 2009 -0400
@@ -369,19 +369,19 @@ void SharkBlock::parse_bytecode(int star
b = pop();
a = pop();
push(SharkValue::create_jint(
- builder()->CreateAdd(a->jint_value(), b->jint_value())));
+ builder()->CreateAdd(a->jint_value(), b->jint_value()), false));
break;
case Bytecodes::_isub:
b = pop();
a = pop();
push(SharkValue::create_jint(
- builder()->CreateSub(a->jint_value(), b->jint_value())));
+ builder()->CreateSub(a->jint_value(), b->jint_value()), false));
break;
case Bytecodes::_imul:
b = pop();
a = pop();
push(SharkValue::create_jint(
- builder()->CreateMul(a->jint_value(), b->jint_value())));
+ builder()->CreateMul(a->jint_value(), b->jint_value()), false));
break;
case Bytecodes::_idiv:
do_idiv();
@@ -392,7 +392,7 @@ void SharkBlock::parse_bytecode(int star
case Bytecodes::_ineg:
a = pop();
push(SharkValue::create_jint(
- builder()->CreateNeg(a->jint_value())));
+ builder()->CreateNeg(a->jint_value()), a->zero_checked()));
break;
case Bytecodes::_ishl:
b = pop();
@@ -401,7 +401,7 @@ void SharkBlock::parse_bytecode(int star
builder()->CreateShl(
a->jint_value(),
builder()->CreateAnd(
- b->jint_value(), LLVMValue::jint_constant(0x1f)))));
+ b->jint_value(), LLVMValue::jint_constant(0x1f))), false));
break;
case Bytecodes::_ishr:
b = pop();
@@ -410,7 +410,7 @@ void SharkBlock::parse_bytecode(int star
builder()->CreateAShr(
a->jint_value(),
builder()->CreateAnd(
- b->jint_value(), LLVMValue::jint_constant(0x1f)))));
+ b->jint_value(), LLVMValue::jint_constant(0x1f))), false));
break;
case Bytecodes::_iushr:
b = pop();
@@ -419,44 +419,45 @@ void SharkBlock::parse_bytecode(int star
builder()->CreateLShr(
a->jint_value(),
builder()->CreateAnd(
- b->jint_value(), LLVMValue::jint_constant(0x1f)))));
+ b->jint_value(), LLVMValue::jint_constant(0x1f))), false));
break;
case Bytecodes::_iand:
b = pop();
a = pop();
push(SharkValue::create_jint(
- builder()->CreateAnd(a->jint_value(), b->jint_value())));
+ builder()->CreateAnd(a->jint_value(), b->jint_value()), false));
break;
case Bytecodes::_ior:
b = pop();
a = pop();
push(SharkValue::create_jint(
- builder()->CreateOr(a->jint_value(), b->jint_value())));
+ builder()->CreateOr(a->jint_value(), b->jint_value()),
+ a->zero_checked() && b->zero_checked()));
break;
case Bytecodes::_ixor:
b = pop();
a = pop();
push(SharkValue::create_jint(
- builder()->CreateXor(a->jint_value(), b->jint_value())));
+ builder()->CreateXor(a->jint_value(), b->jint_value()), false));
break;
case Bytecodes::_ladd:
b = pop();
a = pop();
push(SharkValue::create_jlong(
- builder()->CreateAdd(a->jlong_value(), b->jlong_value())));
+ builder()->CreateAdd(a->jlong_value(), b->jlong_value()), false));
break;
case Bytecodes::_lsub:
b = pop();
a = pop();
push(SharkValue::create_jlong(
- builder()->CreateSub(a->jlong_value(), b->jlong_value())));
+ builder()->CreateSub(a->jlong_value(), b->jlong_value()), false));
break;
case Bytecodes::_lmul:
b = pop();
a = pop();
push(SharkValue::create_jlong(
- builder()->CreateMul(a->jlong_value(), b->jlong_value())));
+ builder()->CreateMul(a->jlong_value(), b->jlong_value()), false));
break;
case Bytecodes::_ldiv:
do_ldiv();
@@ -467,7 +468,7 @@ void SharkBlock::parse_bytecode(int star
case Bytecodes::_lneg:
a = pop();
push(SharkValue::create_jlong(
- builder()->CreateNeg(a->jlong_value())));
+ builder()->CreateNeg(a->jlong_value()), a->zero_checked()));
break;
case Bytecodes::_lshl:
b = pop();
@@ -478,7 +479,7 @@ void SharkBlock::parse_bytecode(int star
builder()->CreateIntCast(
builder()->CreateAnd(
b->jint_value(), LLVMValue::jint_constant(0x3f)),
- SharkType::jlong_type(), true))));
+ SharkType::jlong_type(), true)), false));
break;
case Bytecodes::_lshr:
b = pop();
@@ -489,7 +490,7 @@ void SharkBlock::parse_bytecode(int star
builder()->CreateIntCast(
builder()->CreateAnd(
b->jint_value(), LLVMValue::jint_constant(0x3f)),
- SharkType::jlong_type(), true))));
+ SharkType::jlong_type(), true)), false));
break;
case Bytecodes::_lushr:
b = pop();
@@ -500,25 +501,26 @@ void SharkBlock::parse_bytecode(int star
builder()->CreateIntCast(
builder()->CreateAnd(
b->jint_value(), LLVMValue::jint_constant(0x3f)),
- SharkType::jlong_type(), true))));
+ SharkType::jlong_type(), true)), false));
break;
case Bytecodes::_land:
b = pop();
a = pop();
push(SharkValue::create_jlong(
- builder()->CreateAnd(a->jlong_value(), b->jlong_value())));
+ builder()->CreateAnd(a->jlong_value(), b->jlong_value()), false));
break;
case Bytecodes::_lor:
b = pop();
a = pop();
push(SharkValue::create_jlong(
- builder()->CreateOr(a->jlong_value(), b->jlong_value())));
+ builder()->CreateOr(a->jlong_value(), b->jlong_value()),
+ a->zero_checked() && b->zero_checked()));
break;
case Bytecodes::_lxor:
b = pop();
a = pop();
push(SharkValue::create_jlong(
- builder()->CreateXor(a->jlong_value(), b->jlong_value())));
+ builder()->CreateXor(a->jlong_value(), b->jlong_value()), false));
break;
case Bytecodes::_fadd:
@@ -600,7 +602,7 @@ void SharkBlock::parse_bytecode(int star
SharkValue::create_jint(
builder()->CreateAdd(
LLVMValue::jint_constant(iter()->get_iinc_con()),
- local(i)->jint_value())));
+ local(i)->jint_value()), false));
break;
case Bytecodes::_lcmp:
@@ -621,9 +623,10 @@ void SharkBlock::parse_bytecode(int star
break;
case Bytecodes::_i2l:
+ a = pop();
push(SharkValue::create_jlong(
builder()->CreateIntCast(
- pop()->jint_value(), SharkType::jlong_type(), true)));
+ a->jint_value(), SharkType::jlong_type(), true), a->zero_checked()));
break;
case Bytecodes::_i2f:
push(SharkValue::create_jfloat(
@@ -639,7 +642,7 @@ void SharkBlock::parse_bytecode(int star
case Bytecodes::_l2i:
push(SharkValue::create_jint(
builder()->CreateIntCast(
- pop()->jlong_value(), SharkType::jint_type(), true)));
+ pop()->jlong_value(), SharkType::jint_type(), true), false));
break;
case Bytecodes::_l2f:
push(SharkValue::create_jfloat(
@@ -654,11 +657,11 @@ void SharkBlock::parse_bytecode(int star
case Bytecodes::_f2i:
push(SharkValue::create_jint(
- call_vm_leaf(SharkRuntime::f2i(), pop()->jfloat_value())));
+ call_vm_leaf(SharkRuntime::f2i(), pop()->jfloat_value()), false));
break;
case Bytecodes::_f2l:
push(SharkValue::create_jlong(
- call_vm_leaf(SharkRuntime::f2l(), pop()->jfloat_value())));
+ call_vm_leaf(SharkRuntime::f2l(), pop()->jfloat_value()), false));
break;
case Bytecodes::_f2d:
push(SharkValue::create_jdouble(
@@ -668,11 +671,11 @@ void SharkBlock::parse_bytecode(int star
case Bytecodes::_d2i:
push(SharkValue::create_jint(
- call_vm_leaf(SharkRuntime::d2i(), pop()->jdouble_value())));
+ call_vm_leaf(SharkRuntime::d2i(), pop()->jdouble_value()), false));
break;
case Bytecodes::_d2l:
push(SharkValue::create_jlong(
- call_vm_leaf(SharkRuntime::d2l(), pop()->jdouble_value())));
+ call_vm_leaf(SharkRuntime::d2l(), pop()->jdouble_value()), false));
break;
case Bytecodes::_d2f:
push(SharkValue::create_jfloat(
@@ -686,13 +689,13 @@ void SharkBlock::parse_bytecode(int star
builder()->CreateShl(
pop()->jint_value(),
LLVMValue::jint_constant(24)),
- LLVMValue::jint_constant(24))));
+ LLVMValue::jint_constant(24)), false));
break;
case Bytecodes::_i2c:
push(SharkValue::create_jint(
builder()->CreateAnd(
pop()->jint_value(),
- LLVMValue::jint_constant(0xffff))));
+ LLVMValue::jint_constant(0xffff)), false));
break;
case Bytecodes::_i2s:
push(SharkValue::create_jint(
@@ -700,7 +703,7 @@ void SharkBlock::parse_bytecode(int star
builder()->CreateShl(
pop()->jint_value(),
LLVMValue::jint_constant(16)),
- LLVMValue::jint_constant(16))));
+ LLVMValue::jint_constant(16)), false));
break;
case Bytecodes::_return:
@@ -963,9 +966,9 @@ void SharkBlock::do_div_or_rem(bool is_l
result->addIncoming(general_result, general_case);
if (is_long)
- push(SharkValue::create_jlong(result));
+ push(SharkValue::create_jlong(result, false));
else
- push(SharkValue::create_jint(result));
+ push(SharkValue::create_jint(result, false));
}
void SharkBlock::do_field_access(bool is_get, bool is_field)
@@ -1011,7 +1014,7 @@ void SharkBlock::do_field_access(bool is
field_value = builder()->CreateIntCast(
field_value, stack_type, basic_type != T_CHAR);
- value = SharkValue::create_generic(field->type(), field_value);
+ value = SharkValue::create_generic(field->type(), field_value, false);
}
else {
Value *field_value = value->generic_value();
@@ -1064,7 +1067,7 @@ void SharkBlock::do_lcmp()
result->addIncoming(LLVMValue::jint_constant(0), eq);
result->addIncoming(LLVMValue::jint_constant(1), gt);
- push(SharkValue::create_jint(result));
+ push(SharkValue::create_jint(result, false));
}
void SharkBlock::do_fcmp(bool is_double, bool unordered_is_greater)
@@ -1112,7 +1115,7 @@ void SharkBlock::do_fcmp(bool is_double,
result->addIncoming(LLVMValue::jint_constant(0), eq);
result->addIncoming(LLVMValue::jint_constant(1), gt);
- push(SharkValue::create_jint(result));
+ push(SharkValue::create_jint(result, false));
}
void SharkBlock::emit_IR()
diff -r 5a1daec06e6d -r 96d1de001c8d ports/hotspot/src/share/vm/shark/sharkBlock.hpp
--- a/ports/hotspot/src/share/vm/shark/sharkBlock.hpp Fri Mar 13 09:39:47 2009 -0400
+++ b/ports/hotspot/src/share/vm/shark/sharkBlock.hpp Fri Mar 13 09:55:22 2009 -0400
@@ -239,7 +239,7 @@ class SharkBlock : public ResourceObj {
{
SharkValue *value = SharkValue::from_ciConstant(iter()->get_constant());
if (value == NULL)
- value = SharkValue::create_jobject(lookup_for_ldc());
+ value = SharkValue::create_jobject(lookup_for_ldc(), true);
push(value);
}
diff -r 5a1daec06e6d -r 96d1de001c8d ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp
--- a/ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp Fri Mar 13 09:39:47 2009 -0400
+++ b/ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp Fri Mar 13 09:55:22 2009 -0400
@@ -1,6 +1,6 @@
/*
* Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
- * Copyright 2008 Red Hat, Inc.
+ * Copyright 2008, 2009 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -180,7 +180,8 @@ void SharkCacher::process_stack_slot(int
builder()->CreateLoad(
function()->CreateAddressOfFrameEntry(
adjusted_offset(value, offset),
- SharkType::to_stackType(value->basic_type()))));
+ SharkType::to_stackType(value->basic_type()))),
+ value->zero_checked());
}
}
@@ -206,6 +207,7 @@ void SharkCacher::process_local_slot(int
builder()->CreateLoad(
function()->CreateAddressOfFrameEntry(
adjusted_offset(value, offset),
- SharkType::to_stackType(value->basic_type()))));
- }
-}
+ SharkType::to_stackType(value->basic_type()))),
+ value->zero_checked());
+ }
+}
diff -r 5a1daec06e6d -r 96d1de001c8d ports/hotspot/src/share/vm/shark/sharkIntrinsics.cpp
--- a/ports/hotspot/src/share/vm/shark/sharkIntrinsics.cpp Fri Mar 13 09:39:47 2009 -0400
+++ b/ports/hotspot/src/share/vm/shark/sharkIntrinsics.cpp Fri Mar 13 09:55:22 2009 -0400
@@ -173,10 +173,10 @@ void SharkIntrinsics::do_Math_minmax(Sha
phi->addIncoming(b, return_b);
// Push the result
- SharkValue *result = SharkValue::create_jint(phi);
- if (sa->zero_checked() && sb->zero_checked())
- result->set_zero_checked(true);
- state->push(result);
+ state->push(
+ SharkValue::create_jint(
+ phi,
+ sa->zero_checked() && sb->zero_checked()));
}
void SharkIntrinsics::do_Math_1to1(SharkState *state, Constant *function)
@@ -219,34 +219,34 @@ void SharkIntrinsics::do_Object_getClass
SharkType::klass_type(),
"klass_part");
- SharkValue *result = SharkValue::create_jobject(
- builder->CreateValueOfStructEntry(
- klass_part,
- in_ByteSize(Klass::java_mirror_offset_in_bytes()),
- SharkType::oop_type(),
- "java_mirror"));
-
- result->set_zero_checked(true);
- state->push(result);
+ state->push(
+ SharkValue::create_jobject(
+ builder->CreateValueOfStructEntry(
+ klass_part,
+ in_ByteSize(Klass::java_mirror_offset_in_bytes()),
+ SharkType::oop_type(),
+ "java_mirror"),
+ true));
}
void SharkIntrinsics::do_System_currentTimeMillis(SharkState *state)
{
state->push(
SharkValue::create_jlong(
- state->builder()->CreateCall(SharkRuntime::current_time_millis())));
+ state->builder()->CreateCall(SharkRuntime::current_time_millis()),
+ false));
state->push(NULL);
}
void SharkIntrinsics::do_Thread_currentThread(SharkState *state, Value *thread)
{
- SharkValue *result = SharkValue::create_jobject(
- state->builder()->CreateValueOfStructEntry(
- thread, JavaThread::threadObj_offset(),
- SharkType::jobject_type(),
- "threadObj"));
- result->set_zero_checked(true);
- state->push(result);
+ state->push(
+ SharkValue::create_jobject(
+ state->builder()->CreateValueOfStructEntry(
+ thread, JavaThread::threadObj_offset(),
+ SharkType::jobject_type(),
+ "threadObj"),
+ true));
}
void SharkIntrinsics::do_Unsafe_compareAndSwapInt(SharkState *state)
@@ -279,6 +279,9 @@ void SharkIntrinsics::do_Unsafe_compareA
Value *result = builder->CreateCmpxchgInt(x, addr, e);
// Push the result
- state->push(SharkValue::create_jint(builder->CreateIntCast(
- builder->CreateICmpEQ(result, e), SharkType::jint_type(), true)));
-}
+ state->push(
+ SharkValue::create_jint(
+ builder->CreateIntCast(
+ builder->CreateICmpEQ(result, e), SharkType::jint_type(), true),
+ false));
+}
diff -r 5a1daec06e6d -r 96d1de001c8d ports/hotspot/src/share/vm/shark/sharkState.cpp
--- a/ports/hotspot/src/share/vm/shark/sharkState.cpp Fri Mar 13 09:39:47 2009 -0400
+++ b/ports/hotspot/src/share/vm/shark/sharkState.cpp Fri Mar 13 09:55:22 2009 -0400
@@ -155,11 +155,14 @@ void SharkState::merge(SharkState* other
ciType *this_type = this_value->type();
assert(this_type == other_value->type(), "should be");
+ bool this_checked = this_value->zero_checked();
+ assert(this_checked == other_value->zero_checked(), "should be");
+
snprintf(name, sizeof(name), "local_%d_", i);
phi = builder()->CreatePHI(SharkType::to_stackType(this_type), name);
phi->addIncoming(this_value->generic_value(), this_block);
phi->addIncoming(other_value->generic_value(), other_block);
- set_local(i, SharkValue::create_generic(this_type, phi));
+ set_local(i, SharkValue::create_generic(this_type, phi, this_checked));
}
// Expression stack
@@ -174,11 +177,14 @@ void SharkState::merge(SharkState* other
ciType *this_type = this_value->type();
assert(this_type == other_value->type(), "should be");
+ bool this_checked = this_value->zero_checked();
+ assert(this_checked == other_value->zero_checked(), "should be");
+
snprintf(name, sizeof(name), "stack_%d_", i);
phi = builder()->CreatePHI(SharkType::to_stackType(this_type), name);
phi->addIncoming(this_value->generic_value(), this_block);
phi->addIncoming(other_value->generic_value(), other_block);
- set_stack(i, SharkValue::create_generic(this_type, phi));
+ set_stack(i, SharkValue::create_generic(this_type, phi, this_checked));
}
}
@@ -206,7 +212,7 @@ void SharkState::cache_after_Java_call(c
More information about the distro-pkg-dev
mailing list