提交 f0eec57d 编写于 作者: A andrew

Merge

/* /*
* Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright 2012, 2018 SAP AG. All rights reserved. * Copyright 2012, 2018 SAP AG. 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.
* *
...@@ -33,10 +33,8 @@ ...@@ -33,10 +33,8 @@
// (see globals.hpp) // (see globals.hpp)
define_pd_global(bool, ConvertSleepToYield, true); define_pd_global(bool, ConvertSleepToYield, true);
define_pd_global(bool, ShareVtableStubs, false); // Improves performance markedly for mtrt and compress.
define_pd_global(bool, NeedsDeoptSuspend, false); // Only register window machines need this. define_pd_global(bool, NeedsDeoptSuspend, false); // Only register window machines need this.
define_pd_global(bool, ImplicitNullChecks, true); // Generate code for implicit null checks. define_pd_global(bool, ImplicitNullChecks, true); // Generate code for implicit null checks.
define_pd_global(bool, TrapBasedNullChecks, true); define_pd_global(bool, TrapBasedNullChecks, true);
define_pd_global(bool, UncommonNullCast, true); // Uncommon-trap NULLs passed to check cast. define_pd_global(bool, UncommonNullCast, true); // Uncommon-trap NULLs passed to check cast.
......
...@@ -55,6 +55,8 @@ LIR_Opr FrameMap::map_to_opr(BasicType type, VMRegPair* reg, bool outgoing) { ...@@ -55,6 +55,8 @@ LIR_Opr FrameMap::map_to_opr(BasicType type, VMRegPair* reg, bool outgoing) {
opr = as_oop_opr(reg); opr = as_oop_opr(reg);
} else if (type == T_METADATA) { } else if (type == T_METADATA) {
opr = as_metadata_opr(reg); opr = as_metadata_opr(reg);
} else if (type == T_ADDRESS) {
opr = as_address_opr(reg);
} else { } else {
opr = as_opr(reg); opr = as_opr(reg);
} }
......
/* /*
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2019, 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
...@@ -38,7 +38,6 @@ ...@@ -38,7 +38,6 @@
// according to the prior table. So, we let the thread continue and let it block by itself. // according to the prior table. So, we let the thread continue and let it block by itself.
define_pd_global(bool, DontYieldALot, true); // yield no more than 100 times per second define_pd_global(bool, DontYieldALot, true); // yield no more than 100 times per second
define_pd_global(bool, ConvertSleepToYield, false); // do not convert sleep(0) to yield. Helps GUI define_pd_global(bool, ConvertSleepToYield, false); // do not convert sleep(0) to yield. Helps GUI
define_pd_global(bool, ShareVtableStubs, false); // improves performance markedly for mtrt and compress
define_pd_global(bool, CountInterpCalls, false); // not implemented in the interpreter define_pd_global(bool, CountInterpCalls, false); // not implemented in the interpreter
define_pd_global(bool, NeedsDeoptSuspend, true); // register window machines need this define_pd_global(bool, NeedsDeoptSuspend, true); // register window machines need this
......
...@@ -54,6 +54,8 @@ LIR_Opr FrameMap::map_to_opr(BasicType type, VMRegPair* reg, bool) { ...@@ -54,6 +54,8 @@ LIR_Opr FrameMap::map_to_opr(BasicType type, VMRegPair* reg, bool) {
opr = as_oop_opr(reg); opr = as_oop_opr(reg);
} else if (type == T_METADATA) { } else if (type == T_METADATA) {
opr = as_metadata_opr(reg); opr = as_metadata_opr(reg);
} else if (type == T_ADDRESS) {
opr = as_address_opr(reg);
} else { } else {
opr = as_opr(reg); opr = as_opr(reg);
} }
......
...@@ -964,7 +964,7 @@ void LIR_Assembler::reg2stack(LIR_Opr src, LIR_Opr dest, BasicType type, bool po ...@@ -964,7 +964,7 @@ void LIR_Assembler::reg2stack(LIR_Opr src, LIR_Opr dest, BasicType type, bool po
if (type == T_OBJECT || type == T_ARRAY) { if (type == T_OBJECT || type == T_ARRAY) {
__ verify_oop(src->as_register()); __ verify_oop(src->as_register());
__ movptr (dst, src->as_register()); __ movptr (dst, src->as_register());
} else if (type == T_METADATA) { } else if (type == T_METADATA || type == T_ADDRESS) {
__ movptr (dst, src->as_register()); __ movptr (dst, src->as_register());
} else { } else {
__ movl (dst, src->as_register()); __ movl (dst, src->as_register());
...@@ -1145,7 +1145,7 @@ void LIR_Assembler::stack2reg(LIR_Opr src, LIR_Opr dest, BasicType type) { ...@@ -1145,7 +1145,7 @@ void LIR_Assembler::stack2reg(LIR_Opr src, LIR_Opr dest, BasicType type) {
if (type == T_ARRAY || type == T_OBJECT) { if (type == T_ARRAY || type == T_OBJECT) {
__ movptr(dest->as_register(), frame_map()->address_for_slot(src->single_stack_ix())); __ movptr(dest->as_register(), frame_map()->address_for_slot(src->single_stack_ix()));
__ verify_oop(dest->as_register()); __ verify_oop(dest->as_register());
} else if (type == T_METADATA) { } else if (type == T_METADATA || type == T_ADDRESS) {
__ movptr(dest->as_register(), frame_map()->address_for_slot(src->single_stack_ix())); __ movptr(dest->as_register(), frame_map()->address_for_slot(src->single_stack_ix()));
} else { } else {
__ movl(dest->as_register(), frame_map()->address_for_slot(src->single_stack_ix())); __ movl(dest->as_register(), frame_map()->address_for_slot(src->single_stack_ix()));
......
/* /*
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2019, 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
...@@ -32,7 +32,6 @@ ...@@ -32,7 +32,6 @@
// (see globals.hpp) // (see globals.hpp)
define_pd_global(bool, ConvertSleepToYield, true); define_pd_global(bool, ConvertSleepToYield, true);
define_pd_global(bool, ShareVtableStubs, true);
define_pd_global(bool, CountInterpCalls, true); define_pd_global(bool, CountInterpCalls, true);
define_pd_global(bool, NeedsDeoptSuspend, false); // only register window machines need this define_pd_global(bool, NeedsDeoptSuspend, false); // only register window machines need this
......
/* /*
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc. * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
...@@ -33,7 +33,6 @@ ...@@ -33,7 +33,6 @@
// runtime system. See globals.hpp for details of what they do. // runtime system. See globals.hpp for details of what they do.
define_pd_global(bool, ConvertSleepToYield, true); define_pd_global(bool, ConvertSleepToYield, true);
define_pd_global(bool, ShareVtableStubs, true);
define_pd_global(bool, CountInterpCalls, true); define_pd_global(bool, CountInterpCalls, true);
define_pd_global(bool, NeedsDeoptSuspend, false); define_pd_global(bool, NeedsDeoptSuspend, false);
......
...@@ -198,6 +198,10 @@ class FrameMap : public CompilationResourceObj { ...@@ -198,6 +198,10 @@ class FrameMap : public CompilationResourceObj {
return LIR_OprFact::single_cpu_metadata(cpu_reg2rnr(r)); return LIR_OprFact::single_cpu_metadata(cpu_reg2rnr(r));
} }
static LIR_Opr as_address_opr(Register r) {
return LIR_OprFact::single_cpu_address(cpu_reg2rnr(r));
}
FrameMap(ciMethod* method, int monitors, int reserved_argument_area_size); FrameMap(ciMethod* method, int monitors, int reserved_argument_area_size);
bool finalize_frame(int nof_slots); bool finalize_frame(int nof_slots);
......
/* /*
* Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2019, 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
...@@ -110,7 +110,7 @@ void VtableStubs::initialize() { ...@@ -110,7 +110,7 @@ void VtableStubs::initialize() {
address VtableStubs::find_stub(bool is_vtable_stub, int vtable_index) { address VtableStubs::find_stub(bool is_vtable_stub, int vtable_index) {
assert(vtable_index >= 0, "must be positive"); assert(vtable_index >= 0, "must be positive");
VtableStub* s = ShareVtableStubs ? lookup(is_vtable_stub, vtable_index) : NULL; VtableStub* s = lookup(is_vtable_stub, vtable_index);
if (s == NULL) { if (s == NULL) {
if (is_vtable_stub) { if (is_vtable_stub) {
s = create_vtable_stub(vtable_index); s = create_vtable_stub(vtable_index);
......
/* /*
* Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1997, 2019, 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
...@@ -1180,9 +1180,6 @@ class CommandLineFlags { ...@@ -1180,9 +1180,6 @@ class CommandLineFlags {
product(bool, ReduceSignalUsage, false, \ product(bool, ReduceSignalUsage, false, \
"Reduce the use of OS signals in Java and/or the VM") \ "Reduce the use of OS signals in Java and/or the VM") \
\ \
develop_pd(bool, ShareVtableStubs, \
"Share vtable stubs (smaller code but worse branch prediction") \
\
develop(bool, LoadLineNumberTables, true, \ develop(bool, LoadLineNumberTables, true, \
"Tell whether the class file parser loads line number tables") \ "Tell whether the class file parser loads line number tables") \
\ \
......
...@@ -190,7 +190,7 @@ public: ...@@ -190,7 +190,7 @@ public:
}; };
// State class for a thread suspended at a safepoint // State class for a thread suspended at a safepoint
class ThreadSafepointState: public CHeapObj<mtInternal> { class ThreadSafepointState: public CHeapObj<mtThread> {
public: public:
// These states are maintained by VM thread while threads are being brought // These states are maintained by VM thread while threads are being brought
// to a safepoint. After SafepointSynchronize::end(), they are reset to // to a safepoint. After SafepointSynchronize::end(), they are reset to
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册