2030 inline void lfsx( FloatRegister d, Register b); 2031 inline void lfd( FloatRegister d, int si16); 2032 inline void lfdx( FloatRegister d, Register b); 2033 inline void stfs( FloatRegister s, int si16); 2034 inline void stfsx( FloatRegister s, Register b); 2035 inline void stfd( FloatRegister s, int si16); 2036 inline void stfdx( FloatRegister s, Register b); 2037 inline void lvebx( VectorRegister d, Register s2); 2038 inline void lvehx( VectorRegister d, Register s2); 2039 inline void lvewx( VectorRegister d, Register s2); 2040 inline void lvx( VectorRegister d, Register s2); 2041 inline void lvxl( VectorRegister d, Register s2); 2042 inline void stvebx(VectorRegister d, Register s2); 2043 inline void stvehx(VectorRegister d, Register s2); 2044 inline void stvewx(VectorRegister d, Register s2); 2045 inline void stvx( VectorRegister d, Register s2); 2046 inline void stvxl( VectorRegister d, Register s2); 2047 inline void lvsl( VectorRegister d, Register s2); 2048 inline void lvsr( VectorRegister d, Register s2); 2049 2050 // RegisterOrConstant versions. 2051 // These emitters choose between the versions using two registers and 2052 // those with register and immediate, depending on the content of roc. 2053 // If the constant is not encodable as immediate, instructions to 2054 // load the constant are emitted beforehand. Store instructions need a 2055 // tmp reg if the constant is not encodable as immediate. 2056 // Size unpredictable. 2057 void ld( Register d, RegisterOrConstant roc, Register s1 = noreg); 2058 void lwa( Register d, RegisterOrConstant roc, Register s1 = noreg); 2059 void lwz( Register d, RegisterOrConstant roc, Register s1 = noreg); 2060 void lha( Register d, RegisterOrConstant roc, Register s1 = noreg); 2061 void lhz( Register d, RegisterOrConstant roc, Register s1 = noreg); 2062 void lbz( Register d, RegisterOrConstant roc, Register s1 = noreg); 2063 void std( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); 2064 void stw( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); 2065 void sth( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); 2066 void stb( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); 2067 void add( Register d, RegisterOrConstant roc, Register s1); 2068 void subf(Register d, RegisterOrConstant roc, Register s1); 2069 void cmpd(ConditionRegister d, RegisterOrConstant roc, Register s1); | 2030 inline void lfsx( FloatRegister d, Register b); 2031 inline void lfd( FloatRegister d, int si16); 2032 inline void lfdx( FloatRegister d, Register b); 2033 inline void stfs( FloatRegister s, int si16); 2034 inline void stfsx( FloatRegister s, Register b); 2035 inline void stfd( FloatRegister s, int si16); 2036 inline void stfdx( FloatRegister s, Register b); 2037 inline void lvebx( VectorRegister d, Register s2); 2038 inline void lvehx( VectorRegister d, Register s2); 2039 inline void lvewx( VectorRegister d, Register s2); 2040 inline void lvx( VectorRegister d, Register s2); 2041 inline void lvxl( VectorRegister d, Register s2); 2042 inline void stvebx(VectorRegister d, Register s2); 2043 inline void stvehx(VectorRegister d, Register s2); 2044 inline void stvewx(VectorRegister d, Register s2); 2045 inline void stvx( VectorRegister d, Register s2); 2046 inline void stvxl( VectorRegister d, Register s2); 2047 inline void lvsl( VectorRegister d, Register s2); 2048 inline void lvsr( VectorRegister d, Register s2); 2049 2050 // Endianess specific concatenation of 2 loaded vectors. 2051 inline void load_perm(VectorRegister perm, Register addr); 2052 inline void vec_perm(VectorRegister first_dest, VectorRegister second, VectorRegister perm); 2053 inline void vec_perm(VectorRegister dest, VectorRegister first, VectorRegister second, VectorRegister perm); 2054 2055 // RegisterOrConstant versions. 2056 // These emitters choose between the versions using two registers and 2057 // those with register and immediate, depending on the content of roc. 2058 // If the constant is not encodable as immediate, instructions to 2059 // load the constant are emitted beforehand. Store instructions need a 2060 // tmp reg if the constant is not encodable as immediate. 2061 // Size unpredictable. 2062 void ld( Register d, RegisterOrConstant roc, Register s1 = noreg); 2063 void lwa( Register d, RegisterOrConstant roc, Register s1 = noreg); 2064 void lwz( Register d, RegisterOrConstant roc, Register s1 = noreg); 2065 void lha( Register d, RegisterOrConstant roc, Register s1 = noreg); 2066 void lhz( Register d, RegisterOrConstant roc, Register s1 = noreg); 2067 void lbz( Register d, RegisterOrConstant roc, Register s1 = noreg); 2068 void std( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); 2069 void stw( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); 2070 void sth( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); 2071 void stb( Register d, RegisterOrConstant roc, Register s1 = noreg, Register tmp = noreg); 2072 void add( Register d, RegisterOrConstant roc, Register s1); 2073 void subf(Register d, RegisterOrConstant roc, Register s1); 2074 void cmpd(ConditionRegister d, RegisterOrConstant roc, Register s1); |