1332 void shll(Register dst, int imm8);
1333 void shll(Register dst);
1334
1335 void shlq(Register dst, int imm8);
1336 void shlq(Register dst);
1337
1338 void shrdl(Register dst, Register src);
1339
1340 void shrl(Register dst, int imm8);
1341 void shrl(Register dst);
1342
1343 void shrq(Register dst, int imm8);
1344 void shrq(Register dst);
1345
1346 void smovl(); // QQQ generic?
1347
1348 // Compute Square Root of Scalar Double-Precision Floating-Point Value
1349 void sqrtsd(XMMRegister dst, Address src);
1350 void sqrtsd(XMMRegister dst, XMMRegister src);
1351
1352 void std() { emit_byte(0xfd); }
1353
1354 void stmxcsr( Address dst );
1355
1356 void subl(Address dst, int32_t imm32);
1357 void subl(Address dst, Register src);
1358 void subl(Register dst, int32_t imm32);
1359 void subl(Register dst, Address src);
1360 void subl(Register dst, Register src);
1361
1362 void subq(Address dst, int32_t imm32);
1363 void subq(Address dst, Register src);
1364 void subq(Register dst, int32_t imm32);
1365 void subq(Register dst, Address src);
1366 void subq(Register dst, Register src);
1367
1368
1369 // Subtract Scalar Double-Precision Floating-Point Values
1370 void subsd(XMMRegister dst, Address src);
1371 void subsd(XMMRegister dst, XMMRegister src);
2104 // for jumps/calls.
2105 void jump(AddressLiteral dst);
2106 void jump_cc(Condition cc, AddressLiteral dst);
2107
2108 // 32bit can do a case table jump in one instruction but we no longer allow the base
2109 // to be installed in the Address class. This jump will tranfers to the address
2110 // contained in the location described by entry (not the address of entry)
2111 void jump(ArrayAddress entry);
2112
2113 // Floating
2114
2115 void andpd(XMMRegister dst, Address src) { Assembler::andpd(dst, src); }
2116 void andpd(XMMRegister dst, AddressLiteral src);
2117
2118 void comiss(XMMRegister dst, Address src) { Assembler::comiss(dst, src); }
2119 void comiss(XMMRegister dst, AddressLiteral src);
2120
2121 void comisd(XMMRegister dst, Address src) { Assembler::comisd(dst, src); }
2122 void comisd(XMMRegister dst, AddressLiteral src);
2123
2124 void fldcw(Address src) { Assembler::fldcw(src); }
2125 void fldcw(AddressLiteral src);
2126
2127 void fld_s(int index) { Assembler::fld_s(index); }
2128 void fld_s(Address src) { Assembler::fld_s(src); }
2129 void fld_s(AddressLiteral src);
2130
2131 void fld_d(Address src) { Assembler::fld_d(src); }
2132 void fld_d(AddressLiteral src);
2133
2134 void fld_x(Address src) { Assembler::fld_x(src); }
2135 void fld_x(AddressLiteral src);
2136
2137 void ldmxcsr(Address src) { Assembler::ldmxcsr(src); }
2138 void ldmxcsr(AddressLiteral src);
2139
2140 private:
2141 // these are private because users should be doing movflt/movdbl
2142
2143 void movss(Address dst, XMMRegister src) { Assembler::movss(dst, src); }
2144 void movss(XMMRegister dst, XMMRegister src) { Assembler::movss(dst, src); }
2145 void movss(XMMRegister dst, Address src) { Assembler::movss(dst, src); }
2146 void movss(XMMRegister dst, AddressLiteral src);
2147
2148 void movlpd(XMMRegister dst, Address src) {Assembler::movlpd(dst, src); }
2149 void movlpd(XMMRegister dst, AddressLiteral src);
2150
2151 public:
2152
2153 void movsd(XMMRegister dst, XMMRegister src) { Assembler::movsd(dst, src); }
2154 void movsd(Address dst, XMMRegister src) { Assembler::movsd(dst, src); }
2155 void movsd(XMMRegister dst, Address src) { Assembler::movsd(dst, src); }
2156 void movsd(XMMRegister dst, AddressLiteral src);
2157
2158 void ucomiss(XMMRegister dst, XMMRegister src) { Assembler::ucomiss(dst, src); }
2159 void ucomiss(XMMRegister dst, Address src) { Assembler::ucomiss(dst, src); }
2160 void ucomiss(XMMRegister dst, AddressLiteral src);
2161
2162 void ucomisd(XMMRegister dst, XMMRegister src) { Assembler::ucomisd(dst, src); }
2163 void ucomisd(XMMRegister dst, Address src) { Assembler::ucomisd(dst, src); }
2164 void ucomisd(XMMRegister dst, AddressLiteral src);
2165
2166 // Bitwise Logical XOR of Packed Double-Precision Floating-Point Values
2167 void xorpd(XMMRegister dst, XMMRegister src) { Assembler::xorpd(dst, src); }
2168 void xorpd(XMMRegister dst, Address src) { Assembler::xorpd(dst, src); }
2169 void xorpd(XMMRegister dst, AddressLiteral src);
2170
2171 // Bitwise Logical XOR of Packed Single-Precision Floating-Point Values
2172 void xorps(XMMRegister dst, XMMRegister src) { Assembler::xorps(dst, src); }
2173 void xorps(XMMRegister dst, Address src) { Assembler::xorps(dst, src); }
2174 void xorps(XMMRegister dst, AddressLiteral src);
2175
2176 // Data
|
1332 void shll(Register dst, int imm8);
1333 void shll(Register dst);
1334
1335 void shlq(Register dst, int imm8);
1336 void shlq(Register dst);
1337
1338 void shrdl(Register dst, Register src);
1339
1340 void shrl(Register dst, int imm8);
1341 void shrl(Register dst);
1342
1343 void shrq(Register dst, int imm8);
1344 void shrq(Register dst);
1345
1346 void smovl(); // QQQ generic?
1347
1348 // Compute Square Root of Scalar Double-Precision Floating-Point Value
1349 void sqrtsd(XMMRegister dst, Address src);
1350 void sqrtsd(XMMRegister dst, XMMRegister src);
1351
1352 // Compute Square Root of Scalar Single-Precision Floating-Point Value
1353 void sqrtss(XMMRegister dst, Address src);
1354 void sqrtss(XMMRegister dst, XMMRegister src);
1355
1356 void std() { emit_byte(0xfd); }
1357
1358 void stmxcsr( Address dst );
1359
1360 void subl(Address dst, int32_t imm32);
1361 void subl(Address dst, Register src);
1362 void subl(Register dst, int32_t imm32);
1363 void subl(Register dst, Address src);
1364 void subl(Register dst, Register src);
1365
1366 void subq(Address dst, int32_t imm32);
1367 void subq(Address dst, Register src);
1368 void subq(Register dst, int32_t imm32);
1369 void subq(Register dst, Address src);
1370 void subq(Register dst, Register src);
1371
1372
1373 // Subtract Scalar Double-Precision Floating-Point Values
1374 void subsd(XMMRegister dst, Address src);
1375 void subsd(XMMRegister dst, XMMRegister src);
2108 // for jumps/calls.
2109 void jump(AddressLiteral dst);
2110 void jump_cc(Condition cc, AddressLiteral dst);
2111
2112 // 32bit can do a case table jump in one instruction but we no longer allow the base
2113 // to be installed in the Address class. This jump will tranfers to the address
2114 // contained in the location described by entry (not the address of entry)
2115 void jump(ArrayAddress entry);
2116
2117 // Floating
2118
2119 void andpd(XMMRegister dst, Address src) { Assembler::andpd(dst, src); }
2120 void andpd(XMMRegister dst, AddressLiteral src);
2121
2122 void comiss(XMMRegister dst, Address src) { Assembler::comiss(dst, src); }
2123 void comiss(XMMRegister dst, AddressLiteral src);
2124
2125 void comisd(XMMRegister dst, Address src) { Assembler::comisd(dst, src); }
2126 void comisd(XMMRegister dst, AddressLiteral src);
2127
2128 void fadd_s(Address src) { Assembler::fadd_s(src); }
2129 void fadd_s(AddressLiteral src) { Assembler::fadd_s(as_Address(src)); }
2130
2131 void fldcw(Address src) { Assembler::fldcw(src); }
2132 void fldcw(AddressLiteral src);
2133
2134 void fld_s(int index) { Assembler::fld_s(index); }
2135 void fld_s(Address src) { Assembler::fld_s(src); }
2136 void fld_s(AddressLiteral src);
2137
2138 void fld_d(Address src) { Assembler::fld_d(src); }
2139 void fld_d(AddressLiteral src);
2140
2141 void fld_x(Address src) { Assembler::fld_x(src); }
2142 void fld_x(AddressLiteral src);
2143
2144 void fmul_s(Address src) { Assembler::fmul_s(src); }
2145 void fmul_s(AddressLiteral src) { Assembler::fmul_s(as_Address(src)); }
2146
2147 void ldmxcsr(Address src) { Assembler::ldmxcsr(src); }
2148 void ldmxcsr(AddressLiteral src);
2149
2150 private:
2151 // these are private because users should be doing movflt/movdbl
2152
2153 void movss(Address dst, XMMRegister src) { Assembler::movss(dst, src); }
2154 void movss(XMMRegister dst, XMMRegister src) { Assembler::movss(dst, src); }
2155 void movss(XMMRegister dst, Address src) { Assembler::movss(dst, src); }
2156 void movss(XMMRegister dst, AddressLiteral src);
2157
2158 void movlpd(XMMRegister dst, Address src) {Assembler::movlpd(dst, src); }
2159 void movlpd(XMMRegister dst, AddressLiteral src);
2160
2161 public:
2162
2163 void addsd(XMMRegister dst, XMMRegister src) { Assembler::addsd(dst, src); }
2164 void addsd(XMMRegister dst, Address src) { Assembler::addsd(dst, src); }
2165 void addsd(XMMRegister dst, AddressLiteral src) { Assembler::addsd(dst, as_Address(src)); }
2166
2167 void addss(XMMRegister dst, XMMRegister src) { Assembler::addss(dst, src); }
2168 void addss(XMMRegister dst, Address src) { Assembler::addss(dst, src); }
2169 void addss(XMMRegister dst, AddressLiteral src) { Assembler::addss(dst, as_Address(src)); }
2170
2171 void divsd(XMMRegister dst, XMMRegister src) { Assembler::divsd(dst, src); }
2172 void divsd(XMMRegister dst, Address src) { Assembler::divsd(dst, src); }
2173 void divsd(XMMRegister dst, AddressLiteral src) { Assembler::divsd(dst, as_Address(src)); }
2174
2175 void divss(XMMRegister dst, XMMRegister src) { Assembler::divss(dst, src); }
2176 void divss(XMMRegister dst, Address src) { Assembler::divss(dst, src); }
2177 void divss(XMMRegister dst, AddressLiteral src) { Assembler::divss(dst, as_Address(src)); }
2178
2179 void movsd(XMMRegister dst, XMMRegister src) { Assembler::movsd(dst, src); }
2180 void movsd(Address dst, XMMRegister src) { Assembler::movsd(dst, src); }
2181 void movsd(XMMRegister dst, Address src) { Assembler::movsd(dst, src); }
2182 void movsd(XMMRegister dst, AddressLiteral src) { Assembler::movsd(dst, as_Address(src)); }
2183
2184 void mulsd(XMMRegister dst, XMMRegister src) { Assembler::mulsd(dst, src); }
2185 void mulsd(XMMRegister dst, Address src) { Assembler::mulsd(dst, src); }
2186 void mulsd(XMMRegister dst, AddressLiteral src) { Assembler::mulsd(dst, as_Address(src)); }
2187
2188 void mulss(XMMRegister dst, XMMRegister src) { Assembler::mulss(dst, src); }
2189 void mulss(XMMRegister dst, Address src) { Assembler::mulss(dst, src); }
2190 void mulss(XMMRegister dst, AddressLiteral src) { Assembler::mulss(dst, as_Address(src)); }
2191
2192 void sqrtsd(XMMRegister dst, XMMRegister src) { Assembler::sqrtsd(dst, src); }
2193 void sqrtsd(XMMRegister dst, Address src) { Assembler::sqrtsd(dst, src); }
2194 void sqrtsd(XMMRegister dst, AddressLiteral src) { Assembler::sqrtsd(dst, as_Address(src)); }
2195
2196 void sqrtss(XMMRegister dst, XMMRegister src) { Assembler::sqrtss(dst, src); }
2197 void sqrtss(XMMRegister dst, Address src) { Assembler::sqrtss(dst, src); }
2198 void sqrtss(XMMRegister dst, AddressLiteral src) { Assembler::sqrtss(dst, as_Address(src)); }
2199
2200 void subsd(XMMRegister dst, XMMRegister src) { Assembler::subsd(dst, src); }
2201 void subsd(XMMRegister dst, Address src) { Assembler::subsd(dst, src); }
2202 void subsd(XMMRegister dst, AddressLiteral src) { Assembler::subsd(dst, as_Address(src)); }
2203
2204 void subss(XMMRegister dst, XMMRegister src) { Assembler::subss(dst, src); }
2205 void subss(XMMRegister dst, Address src) { Assembler::subss(dst, src); }
2206 void subss(XMMRegister dst, AddressLiteral src) { Assembler::subss(dst, as_Address(src)); }
2207
2208 void ucomiss(XMMRegister dst, XMMRegister src) { Assembler::ucomiss(dst, src); }
2209 void ucomiss(XMMRegister dst, Address src) { Assembler::ucomiss(dst, src); }
2210 void ucomiss(XMMRegister dst, AddressLiteral src);
2211
2212 void ucomisd(XMMRegister dst, XMMRegister src) { Assembler::ucomisd(dst, src); }
2213 void ucomisd(XMMRegister dst, Address src) { Assembler::ucomisd(dst, src); }
2214 void ucomisd(XMMRegister dst, AddressLiteral src);
2215
2216 // Bitwise Logical XOR of Packed Double-Precision Floating-Point Values
2217 void xorpd(XMMRegister dst, XMMRegister src) { Assembler::xorpd(dst, src); }
2218 void xorpd(XMMRegister dst, Address src) { Assembler::xorpd(dst, src); }
2219 void xorpd(XMMRegister dst, AddressLiteral src);
2220
2221 // Bitwise Logical XOR of Packed Single-Precision Floating-Point Values
2222 void xorps(XMMRegister dst, XMMRegister src) { Assembler::xorps(dst, src); }
2223 void xorps(XMMRegister dst, Address src) { Assembler::xorps(dst, src); }
2224 void xorps(XMMRegister dst, AddressLiteral src);
2225
2226 // Data
|