comparison src/share/vm/c1/c1_CodeStubs.hpp @ 1295:3cf667df43ef

6919934: JSR 292 needs to support x86 C1 Summary: This implements JSR 292 support for C1 x86. Reviewed-by: never, jrose, kvn
author twisti
date Tue, 09 Mar 2010 20:16:19 +0100
parents 37f87013dfd8
children c18cbe5936b8
comparison
equal deleted inserted replaced
1293:51db1e4b379d 1295:3cf667df43ef
1 /* 1 /*
2 * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. 2 * Copyright 1999-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.
413 virtual void print_name(outputStream* out) const { out->print("PatchingStub"); } 413 virtual void print_name(outputStream* out) const { out->print("PatchingStub"); }
414 #endif // PRODUCT 414 #endif // PRODUCT
415 }; 415 };
416 416
417 417
418 //------------------------------------------------------------------------------
419 // DeoptimizeStub
420 //
421 class DeoptimizeStub : public CodeStub {
422 private:
423 CodeEmitInfo* _info;
424
425 public:
426 DeoptimizeStub(CodeEmitInfo* info) : _info(new CodeEmitInfo(info)) {}
427
428 virtual void emit_code(LIR_Assembler* e);
429 virtual CodeEmitInfo* info() const { return _info; }
430 virtual bool is_exception_throw_stub() const { return true; }
431 virtual void visit(LIR_OpVisitState* visitor) {
432 visitor->do_slow_case(_info);
433 }
434 #ifndef PRODUCT
435 virtual void print_name(outputStream* out) const { out->print("DeoptimizeStub"); }
436 #endif // PRODUCT
437 };
438
439
418 class SimpleExceptionStub: public CodeStub { 440 class SimpleExceptionStub: public CodeStub {
419 private: 441 private:
420 LIR_Opr _obj; 442 LIR_Opr _obj;
421 Runtime1::StubID _stub; 443 Runtime1::StubID _stub;
422 CodeEmitInfo* _info; 444 CodeEmitInfo* _info;