equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2018, 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. |
237 // Address is an abstraction used to represent a memory location. |
237 // Address is an abstraction used to represent a memory location. |
238 // |
238 // |
239 // Note: A register location is represented via a Register, not |
239 // Note: A register location is represented via a Register, not |
240 // via an address for efficiency & simplicity reasons. |
240 // via an address for efficiency & simplicity reasons. |
241 |
241 |
242 class Address VALUE_OBJ_CLASS_SPEC { |
242 class Address { |
243 private: |
243 private: |
244 Register _base; // Base register. |
244 Register _base; // Base register. |
245 RegisterOrConstant _index_or_disp; // Index register or constant displacement. |
245 RegisterOrConstant _index_or_disp; // Index register or constant displacement. |
246 RelocationHolder _rspec; |
246 RelocationHolder _rspec; |
247 |
247 |
318 |
318 |
319 friend class Assembler; |
319 friend class Assembler; |
320 }; |
320 }; |
321 |
321 |
322 |
322 |
323 class AddressLiteral VALUE_OBJ_CLASS_SPEC { |
323 class AddressLiteral { |
324 private: |
324 private: |
325 address _address; |
325 address _address; |
326 RelocationHolder _rspec; |
326 RelocationHolder _rspec; |
327 |
327 |
328 RelocationHolder rspec_from_rtype(relocInfo::relocType rtype, address addr) { |
328 RelocationHolder rspec_from_rtype(relocInfo::relocType rtype, address addr) { |
450 // actual argument or an incoming formal parameter, whether |
450 // actual argument or an incoming formal parameter, whether |
451 // it resides in memory or in a register, in a manner consistent |
451 // it resides in memory or in a register, in a manner consistent |
452 // with the SPARC Application Binary Interface, or ABI. This is |
452 // with the SPARC Application Binary Interface, or ABI. This is |
453 // often referred to as the native or C calling convention. |
453 // often referred to as the native or C calling convention. |
454 |
454 |
455 class Argument VALUE_OBJ_CLASS_SPEC { |
455 class Argument { |
456 private: |
456 private: |
457 int _number; |
457 int _number; |
458 bool _is_in; |
458 bool _is_in; |
459 |
459 |
460 public: |
460 public: |