hotspot/src/cpu/ppc/vm/register_ppc.hpp
changeset 35166 23125410af16
parent 25715 d5a8dbdc5150
child 35232 76aed99c0ddd
equal deleted inserted replaced
35165:7f80c81ddb05 35166:23125410af16
   576 #define F13_ARG13          AS_REGISTER(FloatRegister, F13)
   576 #define F13_ARG13          AS_REGISTER(FloatRegister, F13)
   577 #endif
   577 #endif
   578 
   578 
   579 // Register declarations to be used in frame manager assembly code.
   579 // Register declarations to be used in frame manager assembly code.
   580 // Use only non-volatile registers in order to keep values across C-calls.
   580 // Use only non-volatile registers in order to keep values across C-calls.
   581 #ifdef CC_INTERP
       
   582 REGISTER_DECLARATION(Register, R14_state,      R14);      // address of new cInterpreter.
       
   583 REGISTER_DECLARATION(Register, R15_prev_state, R15);      // address of old cInterpreter
       
   584 #else // CC_INTERP
       
   585 REGISTER_DECLARATION(Register, R14_bcp,        R14);
   581 REGISTER_DECLARATION(Register, R14_bcp,        R14);
   586 REGISTER_DECLARATION(Register, R15_esp,        R15);
   582 REGISTER_DECLARATION(Register, R15_esp,        R15);
   587 REGISTER_DECLARATION(FloatRegister, F15_ftos,  F15);
   583 REGISTER_DECLARATION(FloatRegister, F15_ftos,  F15);
   588 #endif // CC_INTERP
       
   589 REGISTER_DECLARATION(Register, R16_thread,     R16);      // address of current thread
   584 REGISTER_DECLARATION(Register, R16_thread,     R16);      // address of current thread
   590 REGISTER_DECLARATION(Register, R17_tos,        R17);      // address of Java tos (prepushed).
   585 REGISTER_DECLARATION(Register, R17_tos,        R17);      // address of Java tos (prepushed).
   591 REGISTER_DECLARATION(Register, R18_locals,     R18);      // address of first param slot (receiver).
   586 REGISTER_DECLARATION(Register, R18_locals,     R18);      // address of first param slot (receiver).
   592 REGISTER_DECLARATION(Register, R19_method,     R19);      // address of current method
   587 REGISTER_DECLARATION(Register, R19_method,     R19);      // address of current method
   593 #ifndef DONT_USE_REGISTER_DEFINES
   588 #ifndef DONT_USE_REGISTER_DEFINES
   594 #ifdef CC_INTERP
       
   595 #define R14_state         AS_REGISTER(Register, R14)
       
   596 #define R15_prev_state    AS_REGISTER(Register, R15)
       
   597 #else // CC_INTERP
       
   598 #define R14_bcp           AS_REGISTER(Register, R14)
   589 #define R14_bcp           AS_REGISTER(Register, R14)
   599 #define R15_esp           AS_REGISTER(Register, R15)
   590 #define R15_esp           AS_REGISTER(Register, R15)
   600 #define F15_ftos          AS_REGISTER(FloatRegister, F15)
   591 #define F15_ftos          AS_REGISTER(FloatRegister, F15)
   601 #endif // CC_INTERP
       
   602 #define R16_thread        AS_REGISTER(Register, R16)
   592 #define R16_thread        AS_REGISTER(Register, R16)
   603 #define R17_tos           AS_REGISTER(Register, R17)
   593 #define R17_tos           AS_REGISTER(Register, R17)
   604 #define R18_locals        AS_REGISTER(Register, R18)
   594 #define R18_locals        AS_REGISTER(Register, R18)
   605 #define R19_method        AS_REGISTER(Register, R19)
   595 #define R19_method        AS_REGISTER(Register, R19)
   606 #define R21_sender_SP     AS_REGISTER(Register, R21)
   596 #define R21_sender_SP     AS_REGISTER(Register, R21)
   617 REGISTER_DECLARATION(Register, R25_tmp5, R25);
   607 REGISTER_DECLARATION(Register, R25_tmp5, R25);
   618 REGISTER_DECLARATION(Register, R26_tmp6, R26);
   608 REGISTER_DECLARATION(Register, R26_tmp6, R26);
   619 REGISTER_DECLARATION(Register, R27_tmp7, R27);
   609 REGISTER_DECLARATION(Register, R27_tmp7, R27);
   620 REGISTER_DECLARATION(Register, R28_tmp8, R28);
   610 REGISTER_DECLARATION(Register, R28_tmp8, R28);
   621 REGISTER_DECLARATION(Register, R29_tmp9, R29);
   611 REGISTER_DECLARATION(Register, R29_tmp9, R29);
   622 #ifndef CC_INTERP
       
   623 REGISTER_DECLARATION(Register, R24_dispatch_addr,     R24);
   612 REGISTER_DECLARATION(Register, R24_dispatch_addr,     R24);
   624 REGISTER_DECLARATION(Register, R25_templateTableBase, R25);
   613 REGISTER_DECLARATION(Register, R25_templateTableBase, R25);
   625 REGISTER_DECLARATION(Register, R26_monitor,           R26);
   614 REGISTER_DECLARATION(Register, R26_monitor,           R26);
   626 REGISTER_DECLARATION(Register, R27_constPoolCache,    R27);
   615 REGISTER_DECLARATION(Register, R27_constPoolCache,    R27);
   627 REGISTER_DECLARATION(Register, R28_mdx,               R28);
   616 REGISTER_DECLARATION(Register, R28_mdx,               R28);
   628 #endif // CC_INTERP
       
   629 
   617 
   630 #ifndef DONT_USE_REGISTER_DEFINES
   618 #ifndef DONT_USE_REGISTER_DEFINES
   631 #define R21_tmp1         AS_REGISTER(Register, R21)
   619 #define R21_tmp1         AS_REGISTER(Register, R21)
   632 #define R22_tmp2         AS_REGISTER(Register, R22)
   620 #define R22_tmp2         AS_REGISTER(Register, R22)
   633 #define R23_tmp3         AS_REGISTER(Register, R23)
   621 #define R23_tmp3         AS_REGISTER(Register, R23)
   635 #define R25_tmp5         AS_REGISTER(Register, R25)
   623 #define R25_tmp5         AS_REGISTER(Register, R25)
   636 #define R26_tmp6         AS_REGISTER(Register, R26)
   624 #define R26_tmp6         AS_REGISTER(Register, R26)
   637 #define R27_tmp7         AS_REGISTER(Register, R27)
   625 #define R27_tmp7         AS_REGISTER(Register, R27)
   638 #define R28_tmp8         AS_REGISTER(Register, R28)
   626 #define R28_tmp8         AS_REGISTER(Register, R28)
   639 #define R29_tmp9         AS_REGISTER(Register, R29)
   627 #define R29_tmp9         AS_REGISTER(Register, R29)
   640 #ifndef CC_INTERP
       
   641 //    Lmonitors  : monitor pointer
   628 //    Lmonitors  : monitor pointer
   642 //    LcpoolCache: constant pool cache
   629 //    LcpoolCache: constant pool cache
   643 //    mdx: method data index
   630 //    mdx: method data index
   644 #define R24_dispatch_addr     AS_REGISTER(Register, R24)
   631 #define R24_dispatch_addr     AS_REGISTER(Register, R24)
   645 #define R25_templateTableBase AS_REGISTER(Register, R25)
   632 #define R25_templateTableBase AS_REGISTER(Register, R25)
   647 #define R27_constPoolCache    AS_REGISTER(Register, R27)
   634 #define R27_constPoolCache    AS_REGISTER(Register, R27)
   648 #define R28_mdx               AS_REGISTER(Register, R28)
   635 #define R28_mdx               AS_REGISTER(Register, R28)
   649 #endif
   636 #endif
   650 
   637 
   651 #define CCR4_is_synced AS_REGISTER(ConditionRegister, CCR4)
   638 #define CCR4_is_synced AS_REGISTER(ConditionRegister, CCR4)
   652 #endif
       
   653 
   639 
   654 // Scratch registers are volatile.
   640 // Scratch registers are volatile.
   655 REGISTER_DECLARATION(Register, R11_scratch1, R11);
   641 REGISTER_DECLARATION(Register, R11_scratch1, R11);
   656 REGISTER_DECLARATION(Register, R12_scratch2, R12);
   642 REGISTER_DECLARATION(Register, R12_scratch2, R12);
   657 #ifndef DONT_USE_REGISTER_DEFINES
   643 #ifndef DONT_USE_REGISTER_DEFINES