1 /* |
1 /* |
2 * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2017, 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. |
602 address entry_point, // the entry point |
602 address entry_point, // the entry point |
603 int number_of_arguments, // the number of arguments (w/o thread) to pop after call |
603 int number_of_arguments, // the number of arguments (w/o thread) to pop after call |
604 bool check_exception=true // flag which indicates if exception should be checked |
604 bool check_exception=true // flag which indicates if exception should be checked |
605 ); |
605 ); |
606 |
606 |
|
607 public: |
|
608 MacroAssembler(CodeBuffer* code) : Assembler(code) {} |
|
609 |
607 // This routine should emit JVMTI PopFrame and ForceEarlyReturn handling code. |
610 // This routine should emit JVMTI PopFrame and ForceEarlyReturn handling code. |
608 // The implementation is only non-empty for the InterpreterMacroAssembler, |
611 // The implementation is only non-empty for the InterpreterMacroAssembler, |
609 // as only the interpreter handles and ForceEarlyReturn PopFrame requests. |
612 // as only the interpreter handles and ForceEarlyReturn PopFrame requests. |
610 virtual void check_and_handle_popframe(Register scratch_reg); |
613 virtual void check_and_handle_popframe(Register scratch_reg); |
611 virtual void check_and_handle_earlyret(Register scratch_reg); |
614 virtual void check_and_handle_earlyret(Register scratch_reg); |
612 |
|
613 public: |
|
614 MacroAssembler(CodeBuffer* code) : Assembler(code) {} |
|
615 |
615 |
616 // Support for NULL-checks |
616 // Support for NULL-checks |
617 // |
617 // |
618 // Generates code that causes a NULL OS exception if the content of reg is NULL. |
618 // Generates code that causes a NULL OS exception if the content of reg is NULL. |
619 // If the accessed location is M[reg + offset] and the offset is known, provide the |
619 // If the accessed location is M[reg + offset] and the offset is known, provide the |