Mercurial > hg > truffle
comparison src/share/vm/opto/callnode.cpp @ 14909:4ca6dc0799b6
Backout jdk9 merge
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Tue, 01 Apr 2014 13:57:07 +0200 |
parents | abec000618bf |
children | 89152779163c |
comparison
equal
deleted
inserted
replaced
14908:8db6e76cb658 | 14909:4ca6dc0799b6 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
340 switch (t->base()) { | 340 switch (t->base()) { |
341 case Type::Int: | 341 case Type::Int: |
342 st->print(" %s%d]=#"INT32_FORMAT,msg,i,t->is_int()->get_con()); | 342 st->print(" %s%d]=#"INT32_FORMAT,msg,i,t->is_int()->get_con()); |
343 break; | 343 break; |
344 case Type::AnyPtr: | 344 case Type::AnyPtr: |
345 assert( t == TypePtr::NULL_PTR || n->in_dump(), "" ); | 345 assert( t == TypePtr::NULL_PTR, "" ); |
346 st->print(" %s%d]=#NULL",msg,i); | 346 st->print(" %s%d]=#NULL",msg,i); |
347 break; | 347 break; |
348 case Type::AryPtr: | 348 case Type::AryPtr: |
349 case Type::InstPtr: | 349 case Type::InstPtr: |
350 st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,t->isa_oopptr()->const_oop()); | 350 st->print(" %s%d]=#Ptr" INTPTR_FORMAT,msg,i,t->isa_oopptr()->const_oop()); |
593 for (JVMState* p = this; p->_caller != NULL; p = p->_caller) { | 593 for (JVMState* p = this; p->_caller != NULL; p = p->_caller) { |
594 p->set_map(map); | 594 p->set_map(map); |
595 } | 595 } |
596 } | 596 } |
597 | 597 |
598 // Adapt offsets in in-array after adding or removing an edge. | |
599 // Prerequisite is that the JVMState is used by only one node. | |
600 void JVMState::adapt_position(int delta) { | |
601 for (JVMState* jvms = this; jvms != NULL; jvms = jvms->caller()) { | |
602 jvms->set_locoff(jvms->locoff() + delta); | |
603 jvms->set_stkoff(jvms->stkoff() + delta); | |
604 jvms->set_monoff(jvms->monoff() + delta); | |
605 jvms->set_scloff(jvms->scloff() + delta); | |
606 jvms->set_endoff(jvms->endoff() + delta); | |
607 } | |
608 } | |
609 | |
610 //============================================================================= | 598 //============================================================================= |
611 uint CallNode::cmp( const Node &n ) const | 599 uint CallNode::cmp( const Node &n ) const |
612 { return _tf == ((CallNode&)n)._tf && _jvms == ((CallNode&)n)._jvms; } | 600 { return _tf == ((CallNode&)n)._tf && _jvms == ((CallNode&)n)._jvms; } |
613 #ifndef PRODUCT | 601 #ifndef PRODUCT |
614 void CallNode::dump_req(outputStream *st) const { | 602 void CallNode::dump_req(outputStream *st) const { |
897 int CallStaticJavaNode::extract_uncommon_trap_request(const Node* call) { | 885 int CallStaticJavaNode::extract_uncommon_trap_request(const Node* call) { |
898 #ifndef PRODUCT | 886 #ifndef PRODUCT |
899 if (!(call->req() > TypeFunc::Parms && | 887 if (!(call->req() > TypeFunc::Parms && |
900 call->in(TypeFunc::Parms) != NULL && | 888 call->in(TypeFunc::Parms) != NULL && |
901 call->in(TypeFunc::Parms)->is_Con())) { | 889 call->in(TypeFunc::Parms)->is_Con())) { |
902 assert(in_dump() != 0, "OK if dumping"); | 890 assert(_in_dump_cnt != 0, "OK if dumping"); |
903 tty->print("[bad uncommon trap]"); | 891 tty->print("[bad uncommon trap]"); |
904 return 0; | 892 return 0; |
905 } | 893 } |
906 #endif | 894 #endif |
907 return call->in(TypeFunc::Parms)->bottom_type()->is_int()->get_con(); | 895 return call->in(TypeFunc::Parms)->bottom_type()->is_int()->get_con(); |