< prev index next >
src/hotspot/cpu/x86/assembler_x86.hpp
Print this page
*** 31,41 ****
class BiasedLockingCounters;
// Contains all the definitions needed for x86 assembly code generation.
// Calling convention
! class Argument VALUE_OBJ_CLASS_SPEC {
public:
enum {
#ifdef _LP64
#ifdef _WIN64
n_int_register_parameters_c = 4, // rcx, rdx, r8, r9 (c_rarg0, c_rarg1, ...)
--- 31,41 ----
class BiasedLockingCounters;
// Contains all the definitions needed for x86 assembly code generation.
// Calling convention
! class Argument {
public:
enum {
#ifdef _LP64
#ifdef _WIN64
n_int_register_parameters_c = 4, // rcx, rdx, r8, r9 (c_rarg0, c_rarg1, ...)
*** 153,163 ****
// Note: A register location is represented via a Register, not
// via an address for efficiency & simplicity reasons.
class ArrayAddress;
! class Address VALUE_OBJ_CLASS_SPEC {
public:
enum ScaleFactor {
no_scale = -1,
times_1 = 0,
times_2 = 1,
--- 153,163 ----
// Note: A register location is represented via a Register, not
// via an address for efficiency & simplicity reasons.
class ArrayAddress;
! class Address {
public:
enum ScaleFactor {
no_scale = -1,
times_1 = 0,
times_2 = 1,
*** 331,341 ****
// MacroAssembler does not have to implement every instruction in the Assembler
// in order to search for address literals that may need special handling depending
// on the instruction and the platform. As small step on the way to merging i486/amd64
// directories.
//
! class AddressLiteral VALUE_OBJ_CLASS_SPEC {
friend class ArrayAddress;
RelocationHolder _rspec;
// Typically we use AddressLiterals we want to use their rval
// However in some situations we want the lval (effect address) of the item.
// We provide a special factory for making those lvals.
--- 331,341 ----
// MacroAssembler does not have to implement every instruction in the Assembler
// in order to search for address literals that may need special handling depending
// on the instruction and the platform. As small step on the way to merging i486/amd64
// directories.
//
! class AddressLiteral {
friend class ArrayAddress;
RelocationHolder _rspec;
// Typically we use AddressLiterals we want to use their rval
// However in some situations we want the lval (effect address) of the item.
// We provide a special factory for making those lvals.
*** 421,431 ****
// x86 can do array addressing as a single operation since disp can be an absolute
// address amd64 can't. We create a class that expresses the concept but does extra
// magic on amd64 to get the final result
! class ArrayAddress VALUE_OBJ_CLASS_SPEC {
private:
AddressLiteral _base;
Address _index;
--- 421,431 ----
// x86 can do array addressing as a single operation since disp can be an absolute
// address amd64 can't. We create a class that expresses the concept but does extra
// magic on amd64 to get the final result
! class ArrayAddress {
private:
AddressLiteral _base;
Address _index;
< prev index next >