src/hotspot/cpu/sparc/macroAssembler_sparc.hpp
changeset 49364 601146c66cad
parent 49010 9010e596f391
child 49625 94ef8da94ce9
equal deleted inserted replaced
49363:7be58576e71a 49364:601146c66cad
     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: