< prev index next >

src/cpu/ppc/vm/register_ppc.hpp

Print this page

        

*** 1,8 **** /* ! * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. ! * Copyright 2012, 2014 SAP AG. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,8 ---- /* ! * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. ! * Copyright 2012, 2018 SAP AG. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 490,499 **** --- 490,599 ---- #define VR30 ((VectorRegister)( VR30_VectorRegisterEnumValue)) #define VR31 ((VectorRegister)( VR31_VectorRegisterEnumValue)) #endif // DONT_USE_REGISTER_DEFINES + // Use VectorSRegister as a shortcut. + class VectorSRegisterImpl; + typedef VectorSRegisterImpl* VectorSRegister; + + inline VectorSRegister as_VectorSRegister(int encoding) { + return (VectorSRegister)(intptr_t)encoding; + } + + // The implementation of Vector-Scalar (VSX) registers on POWER architecture. + class VectorSRegisterImpl: public AbstractRegisterImpl { + public: + enum { + number_of_registers = 32 + }; + + // construction + inline friend VectorSRegister as_VectorSRegister(int encoding); + + // accessors + int encoding() const { assert(is_valid(), "invalid register"); return value(); } + + // testers + bool is_valid() const { return 0 <= value() && value() < number_of_registers; } + + const char* name() const; + }; + + // The Vector-Scalar (VSX) registers of the POWER architecture. + + CONSTANT_REGISTER_DECLARATION(VectorSRegister, vsnoreg, (-1)); + + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR0, ( 0)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR1, ( 1)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR2, ( 2)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR3, ( 3)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR4, ( 4)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR5, ( 5)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR6, ( 6)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR7, ( 7)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR8, ( 8)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR9, ( 9)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR10, (10)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR11, (11)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR12, (12)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR13, (13)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR14, (14)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR15, (15)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR16, (16)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR17, (17)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR18, (18)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR19, (19)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR20, (20)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR21, (21)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR22, (22)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR23, (23)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR24, (24)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR25, (25)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR26, (26)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR27, (27)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR28, (28)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR29, (29)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR30, (30)); + CONSTANT_REGISTER_DECLARATION(VectorSRegister, VSR31, (31)); + + #ifndef DONT_USE_REGISTER_DEFINES + #define vsnoregi ((VectorSRegister)(vsnoreg_VectorSRegisterEnumValue)) + #define VSR0 ((VectorSRegister)( VSR0_VectorSRegisterEnumValue)) + #define VSR1 ((VectorSRegister)( VSR1_VectorSRegisterEnumValue)) + #define VSR2 ((VectorSRegister)( VSR2_VectorSRegisterEnumValue)) + #define VSR3 ((VectorSRegister)( VSR3_VectorSRegisterEnumValue)) + #define VSR4 ((VectorSRegister)( VSR4_VectorSRegisterEnumValue)) + #define VSR5 ((VectorSRegister)( VSR5_VectorSRegisterEnumValue)) + #define VSR6 ((VectorSRegister)( VSR6_VectorSRegisterEnumValue)) + #define VSR7 ((VectorSRegister)( VSR7_VectorSRegisterEnumValue)) + #define VSR8 ((VectorSRegister)( VSR8_VectorSRegisterEnumValue)) + #define VSR9 ((VectorSRegister)( VSR9_VectorSRegisterEnumValue)) + #define VSR10 ((VectorSRegister)( VSR10_VectorSRegisterEnumValue)) + #define VSR11 ((VectorSRegister)( VSR11_VectorSRegisterEnumValue)) + #define VSR12 ((VectorSRegister)( VSR12_VectorSRegisterEnumValue)) + #define VSR13 ((VectorSRegister)( VSR13_VectorSRegisterEnumValue)) + #define VSR14 ((VectorSRegister)( VSR14_VectorSRegisterEnumValue)) + #define VSR15 ((VectorSRegister)( VSR15_VectorSRegisterEnumValue)) + #define VSR16 ((VectorSRegister)( VSR16_VectorSRegisterEnumValue)) + #define VSR17 ((VectorSRegister)( VSR17_VectorSRegisterEnumValue)) + #define VSR18 ((VectorSRegister)( VSR18_VectorSRegisterEnumValue)) + #define VSR19 ((VectorSRegister)( VSR19_VectorSRegisterEnumValue)) + #define VSR20 ((VectorSRegister)( VSR20_VectorSRegisterEnumValue)) + #define VSR21 ((VectorSRegister)( VSR21_VectorSRegisterEnumValue)) + #define VSR22 ((VectorSRegister)( VSR22_VectorSRegisterEnumValue)) + #define VSR23 ((VectorSRegister)( VSR23_VectorSRegisterEnumValue)) + #define VSR24 ((VectorSRegister)( VSR24_VectorSRegisterEnumValue)) + #define VSR25 ((VectorSRegister)( VSR25_VectorSRegisterEnumValue)) + #define VSR26 ((VectorSRegister)( VSR26_VectorSRegisterEnumValue)) + #define VSR27 ((VectorSRegister)( VSR27_VectorSRegisterEnumValue)) + #define VSR28 ((VectorSRegister)( VSR28_VectorSRegisterEnumValue)) + #define VSR29 ((VectorSRegister)( VSR29_VectorSRegisterEnumValue)) + #define VSR30 ((VectorSRegister)( VSR30_VectorSRegisterEnumValue)) + #define VSR31 ((VectorSRegister)( VSR31_VectorSRegisterEnumValue)) + #endif // DONT_USE_REGISTER_DEFINES + // Maximum number of incoming arguments that can be passed in i registers. const int PPC_ARGS_IN_REGS_NUM = 8; // Need to know the total number of registers of all sorts for SharedInfo.
< prev index next >