1 /* |
1 /* |
2 * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved. |
2 * Copyright 2000-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. |
440 |
440 |
441 compilation()->offsets()->set_value(CodeOffsets::Exceptions, code_offset()); |
441 compilation()->offsets()->set_value(CodeOffsets::Exceptions, code_offset()); |
442 |
442 |
443 // if the method does not have an exception handler, then there is |
443 // if the method does not have an exception handler, then there is |
444 // no reason to search for one |
444 // no reason to search for one |
445 if (compilation()->has_exception_handlers() || compilation()->env()->jvmti_can_post_exceptions()) { |
445 if (compilation()->has_exception_handlers() || compilation()->env()->jvmti_can_post_on_exceptions()) { |
446 // the exception oop and pc are in rax, and rdx |
446 // the exception oop and pc are in rax, and rdx |
447 // no other registers need to be preserved, so invalidate them |
447 // no other registers need to be preserved, so invalidate them |
448 __ invalidate_registers(false, true, true, false, true, true); |
448 __ invalidate_registers(false, true, true, false, true, true); |
449 |
449 |
450 // check that there is really an exception |
450 // check that there is really an exception |