1 /* |
1 /* |
2 * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. |
3 * Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved. |
3 * Copyright (c) 2014, 2015, Red Hat Inc. All rights reserved. |
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
5 * |
5 * |
6 * This code is free software; you can redistribute it and/or modify it |
6 * This code is free software; you can redistribute it and/or modify it |
7 * under the terms of the GNU General Public License version 2 only, as |
7 * under the terms of the GNU General Public License version 2 only, as |
52 Register last_java_sp, |
52 Register last_java_sp, |
53 address entry_point, |
53 address entry_point, |
54 int number_of_arguments, |
54 int number_of_arguments, |
55 bool check_exceptions); |
55 bool check_exceptions); |
56 |
56 |
|
57 // base routine for all dispatches |
|
58 void dispatch_base(TosState state, address* table, bool verifyoop = true); |
|
59 |
|
60 public: |
|
61 InterpreterMacroAssembler(CodeBuffer* code) : MacroAssembler(code) {} |
|
62 |
|
63 void load_earlyret_value(TosState state); |
|
64 |
|
65 void jump_to_entry(address entry); |
|
66 |
57 virtual void check_and_handle_popframe(Register java_thread); |
67 virtual void check_and_handle_popframe(Register java_thread); |
58 virtual void check_and_handle_earlyret(Register java_thread); |
68 virtual void check_and_handle_earlyret(Register java_thread); |
59 |
|
60 // base routine for all dispatches |
|
61 void dispatch_base(TosState state, address* table, bool verifyoop = true); |
|
62 |
|
63 public: |
|
64 InterpreterMacroAssembler(CodeBuffer* code) : MacroAssembler(code) {} |
|
65 |
|
66 void load_earlyret_value(TosState state); |
|
67 |
|
68 void jump_to_entry(address entry); |
|
69 |
69 |
70 // Interpreter-specific registers |
70 // Interpreter-specific registers |
71 void save_bcp() { |
71 void save_bcp() { |
72 str(rbcp, Address(rfp, frame::interpreter_frame_bcp_offset * wordSize)); |
72 str(rbcp, Address(rfp, frame::interpreter_frame_bcp_offset * wordSize)); |
73 } |
73 } |