comparison src/share/vm/c1/c1_CodeStubs.hpp @ 24170:0b85ccd62409 jdk8u131-b01

8168699: Validate special case invocations Reviewed-by: kevinw, vlivanov
author coleenp
date Tue, 13 Dec 2016 14:37:04 -0500
parents 55fb97c4c58d
children 719853999215
comparison
equal deleted inserted replaced
24169:5ee58c7d3938 24170:0b85ccd62409
1 /* 1 /*
2 * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1999, 2016, 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.
55 virtual void emit_code(LIR_Assembler* e) = 0; 55 virtual void emit_code(LIR_Assembler* e) = 0;
56 virtual CodeEmitInfo* info() const { return NULL; } 56 virtual CodeEmitInfo* info() const { return NULL; }
57 virtual bool is_exception_throw_stub() const { return false; } 57 virtual bool is_exception_throw_stub() const { return false; }
58 virtual bool is_range_check_stub() const { return false; } 58 virtual bool is_range_check_stub() const { return false; }
59 virtual bool is_divbyzero_stub() const { return false; } 59 virtual bool is_divbyzero_stub() const { return false; }
60 virtual bool is_simple_exception_stub() const { return false; }
60 #ifndef PRODUCT 61 #ifndef PRODUCT
61 virtual void print_name(outputStream* out) const = 0; 62 virtual void print_name(outputStream* out) const = 0;
62 #endif 63 #endif
63 64
64 // label access 65 // label access
482 } 483 }
483 484
484 virtual void emit_code(LIR_Assembler* e); 485 virtual void emit_code(LIR_Assembler* e);
485 virtual CodeEmitInfo* info() const { return _info; } 486 virtual CodeEmitInfo* info() const { return _info; }
486 virtual bool is_exception_throw_stub() const { return true; } 487 virtual bool is_exception_throw_stub() const { return true; }
488 virtual bool is_simple_exception_stub() const { return true; }
487 virtual void visit(LIR_OpVisitState* visitor) { 489 virtual void visit(LIR_OpVisitState* visitor) {
488 if (_obj->is_valid()) visitor->do_input(_obj); 490 if (_obj->is_valid()) visitor->do_input(_obj);
489 visitor->do_slow_case(_info); 491 visitor->do_slow_case(_info);
490 } 492 }
491 #ifndef PRODUCT 493 #ifndef PRODUCT