hotspot/src/share/vm/code/location.cpp
Print this page
rev 611 : Merge
*** 1,10 ****
#ifdef USE_PRAGMA_IDENT_SRC
#pragma ident "@(#)location.cpp 1.40 07/05/05 17:05:21 JVM"
#endif
/*
! * Copyright 1997-2006 Sun Microsystems, Inc. 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,10 ----
#ifdef USE_PRAGMA_IDENT_SRC
#pragma ident "@(#)location.cpp 1.40 07/05/05 17:05:21 JVM"
#endif
/*
! * Copyright 1997-2008 Sun Microsystems, Inc. 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 27,37 ****
#include "incls/_precompiled.incl"
#include "incls/_location.cpp.incl"
void Location::print_on(outputStream* st) const {
! if(type() == invalid && !legal_offset_in_bytes(offset() * BytesPerInt)) {
// product of Location::invalid_loc() or Location::Location().
switch (where()) {
case on_stack: st->print("empty"); break;
case in_register: st->print("invalid"); break;
}
--- 27,37 ----
#include "incls/_precompiled.incl"
#include "incls/_location.cpp.incl"
void Location::print_on(outputStream* st) const {
! if(type() == invalid) {
// product of Location::invalid_loc() or Location::Location().
switch (where()) {
case on_stack: st->print("empty"); break;
case in_register: st->print("invalid"); break;
}
*** 43,52 ****
--- 43,53 ----
default: st->print("Wrong location where %d", where());
}
switch (type()) {
case normal: break;
case oop: st->print(",oop"); break;
+ case narrowoop: st->print(",narrowoop"); break;
case int_in_long: st->print(",int"); break;
case lng: st->print(",long"); break;
case float_in_dbl: st->print(",float"); break;
case dbl: st->print(",double"); break;
case addr: st->print(",address"); break;
*** 54,73 ****
}
}
Location::Location(DebugInfoReadStream* stream) {
! _value = (uint16_t) stream->read_int();
}
void Location::write_on(DebugInfoWriteStream* stream) {
! stream->write_int(_value & 0x0000FFFF);
}
// Valid argument to Location::new_stk_loc()?
bool Location::legal_offset_in_bytes(int offset_in_bytes) {
if ((offset_in_bytes % BytesPerInt) != 0) return false;
! return (offset_in_bytes / BytesPerInt) < (OFFSET_MASK >> OFFSET_SHIFT);
}
--- 55,74 ----
}
}
Location::Location(DebugInfoReadStream* stream) {
! _value = (juint) stream->read_int();
}
void Location::write_on(DebugInfoWriteStream* stream) {
! stream->write_int(_value);
}
// Valid argument to Location::new_stk_loc()?
bool Location::legal_offset_in_bytes(int offset_in_bytes) {
if ((offset_in_bytes % BytesPerInt) != 0) return false;
! return (juint)(offset_in_bytes / BytesPerInt) < (OFFSET_MASK >> OFFSET_SHIFT);
}