equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1999, 2015, 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. |
599 class G1PostBarrierStub: public CodeStub { |
599 class G1PostBarrierStub: public CodeStub { |
600 private: |
600 private: |
601 LIR_Opr _addr; |
601 LIR_Opr _addr; |
602 LIR_Opr _new_val; |
602 LIR_Opr _new_val; |
603 |
603 |
604 static jbyte* _byte_map_base; |
|
605 static jbyte* byte_map_base_slow(); |
|
606 static jbyte* byte_map_base() { |
|
607 if (_byte_map_base == NULL) { |
|
608 _byte_map_base = byte_map_base_slow(); |
|
609 } |
|
610 return _byte_map_base; |
|
611 } |
|
612 |
|
613 public: |
604 public: |
614 // addr (the address of the object head) and new_val must be registers. |
605 // addr (the address of the object head) and new_val must be registers. |
615 G1PostBarrierStub(LIR_Opr addr, LIR_Opr new_val): _addr(addr), _new_val(new_val) { } |
606 G1PostBarrierStub(LIR_Opr addr, LIR_Opr new_val): _addr(addr), _new_val(new_val) { } |
616 |
607 |
617 LIR_Opr addr() const { return _addr; } |
608 LIR_Opr addr() const { return _addr; } |