1 /* |
1 /* |
2 * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved. |
2 * Copyright 2002-2010 Sun Microsystems, Inc. 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. |
508 static jfloat stack_float(intptr_t *tos, int offset); |
508 static jfloat stack_float(intptr_t *tos, int offset); |
509 static oop stack_object(intptr_t *tos, int offset); |
509 static oop stack_object(intptr_t *tos, int offset); |
510 static jdouble stack_double(intptr_t *tos, int offset); |
510 static jdouble stack_double(intptr_t *tos, int offset); |
511 static jlong stack_long(intptr_t *tos, int offset); |
511 static jlong stack_long(intptr_t *tos, int offset); |
512 |
512 |
513 static void tag_stack(intptr_t *tos, frame::Tag tag, int offset); |
|
514 |
|
515 // only used for value types |
513 // only used for value types |
516 static void set_stack_slot(intptr_t *tos, address value, int offset); |
514 static void set_stack_slot(intptr_t *tos, address value, int offset); |
517 static void set_stack_int(intptr_t *tos, int value, int offset); |
515 static void set_stack_int(intptr_t *tos, int value, int offset); |
518 static void set_stack_float(intptr_t *tos, jfloat value, int offset); |
516 static void set_stack_float(intptr_t *tos, jfloat value, int offset); |
519 static void set_stack_object(intptr_t *tos, oop value, int offset); |
517 static void set_stack_object(intptr_t *tos, oop value, int offset); |
534 static jdouble locals_double(intptr_t* locals, int offset); |
532 static jdouble locals_double(intptr_t* locals, int offset); |
535 static jlong locals_long(intptr_t* locals, int offset); |
533 static jlong locals_long(intptr_t* locals, int offset); |
536 |
534 |
537 static address locals_long_at(intptr_t* locals, int offset); |
535 static address locals_long_at(intptr_t* locals, int offset); |
538 static address locals_double_at(intptr_t* locals, int offset); |
536 static address locals_double_at(intptr_t* locals, int offset); |
539 |
|
540 static void tag_locals(intptr_t *locals, frame::Tag tag, int offset); |
|
541 |
537 |
542 static void set_locals_slot(intptr_t *locals, address value, int offset); |
538 static void set_locals_slot(intptr_t *locals, address value, int offset); |
543 static void set_locals_int(intptr_t *locals, jint value, int offset); |
539 static void set_locals_int(intptr_t *locals, jint value, int offset); |
544 static void set_locals_float(intptr_t *locals, jfloat value, int offset); |
540 static void set_locals_float(intptr_t *locals, jfloat value, int offset); |
545 static void set_locals_object(intptr_t *locals, oop value, int offset); |
541 static void set_locals_object(intptr_t *locals, oop value, int offset); |
555 |
551 |
556 // Support for dup and swap |
552 // Support for dup and swap |
557 static void copy_stack_slot(intptr_t *tos, int from_offset, int to_offset); |
553 static void copy_stack_slot(intptr_t *tos, int from_offset, int to_offset); |
558 |
554 |
559 #ifndef PRODUCT |
555 #ifndef PRODUCT |
560 static void verify_locals_tag(intptr_t *locals, frame::Tag tag, int offset); |
|
561 static void verify_stack_tag(intptr_t *tos, frame::Tag tag, int offset); |
|
562 static const char* C_msg(BytecodeInterpreter::messages msg); |
556 static const char* C_msg(BytecodeInterpreter::messages msg); |
563 void print(); |
557 void print(); |
564 #endif // PRODUCT |
558 #endif // PRODUCT |
565 |
559 |
566 // Platform fields/methods |
560 // Platform fields/methods |