544 void prefix(Register reg); |
568 void prefix(Register reg); |
545 void prefix(Address adr); |
569 void prefix(Address adr); |
546 void prefixq(Address adr); |
570 void prefixq(Address adr); |
547 |
571 |
548 void prefix(Address adr, Register reg, bool byteinst = false); |
572 void prefix(Address adr, Register reg, bool byteinst = false); |
|
573 void prefix(Address adr, XMMRegister reg); |
549 void prefixq(Address adr, Register reg); |
574 void prefixq(Address adr, Register reg); |
550 |
575 void prefixq(Address adr, XMMRegister reg); |
551 void prefix(Address adr, XMMRegister reg); |
|
552 |
576 |
553 void prefetch_prefix(Address src); |
577 void prefetch_prefix(Address src); |
|
578 |
|
579 void rex_prefix(Address adr, XMMRegister xreg, |
|
580 VexSimdPrefix pre, VexOpcode opc, bool rex_w); |
|
581 int rex_prefix_and_encode(int dst_enc, int src_enc, |
|
582 VexSimdPrefix pre, VexOpcode opc, bool rex_w); |
|
583 |
|
584 void vex_prefix(bool vex_r, bool vex_b, bool vex_x, bool vex_w, |
|
585 int nds_enc, VexSimdPrefix pre, VexOpcode opc, |
|
586 bool vector256); |
|
587 |
|
588 void vex_prefix(Address adr, int nds_enc, int xreg_enc, |
|
589 VexSimdPrefix pre, VexOpcode opc, |
|
590 bool vex_w, bool vector256); |
|
591 |
|
592 int vex_prefix_and_encode(int dst_enc, int nds_enc, int src_enc, |
|
593 VexSimdPrefix pre, VexOpcode opc, |
|
594 bool vex_w, bool vector256); |
|
595 |
|
596 |
|
597 void simd_prefix(XMMRegister xreg, XMMRegister nds, Address adr, |
|
598 VexSimdPrefix pre, VexOpcode opc = VEX_OPCODE_0F, |
|
599 bool rex_w = false, bool vector256 = false); |
|
600 |
|
601 void simd_prefix(XMMRegister dst, Address src, |
|
602 VexSimdPrefix pre, VexOpcode opc = VEX_OPCODE_0F) { |
|
603 simd_prefix(dst, xnoreg, src, pre, opc); |
|
604 } |
|
605 void simd_prefix(Address dst, XMMRegister src, VexSimdPrefix pre) { |
|
606 simd_prefix(src, dst, pre); |
|
607 } |
|
608 void simd_prefix_q(XMMRegister dst, XMMRegister nds, Address src, |
|
609 VexSimdPrefix pre) { |
|
610 bool rex_w = true; |
|
611 simd_prefix(dst, nds, src, pre, VEX_OPCODE_0F, rex_w); |
|
612 } |
|
613 |
|
614 |
|
615 int simd_prefix_and_encode(XMMRegister dst, XMMRegister nds, XMMRegister src, |
|
616 VexSimdPrefix pre, VexOpcode opc = VEX_OPCODE_0F, |
|
617 bool rex_w = false, bool vector256 = false); |
|
618 |
|
619 int simd_prefix_and_encode(XMMRegister dst, XMMRegister src, |
|
620 VexSimdPrefix pre, VexOpcode opc = VEX_OPCODE_0F) { |
|
621 return simd_prefix_and_encode(dst, xnoreg, src, pre, opc); |
|
622 } |
|
623 |
|
624 // Move/convert 32-bit integer value. |
|
625 int simd_prefix_and_encode(XMMRegister dst, XMMRegister nds, Register src, |
|
626 VexSimdPrefix pre) { |
|
627 // It is OK to cast from Register to XMMRegister to pass argument here |
|
628 // since only encoding is used in simd_prefix_and_encode() and number of |
|
629 // Gen and Xmm registers are the same. |
|
630 return simd_prefix_and_encode(dst, nds, as_XMMRegister(src->encoding()), pre); |
|
631 } |
|
632 int simd_prefix_and_encode(XMMRegister dst, Register src, VexSimdPrefix pre) { |
|
633 return simd_prefix_and_encode(dst, xnoreg, src, pre); |
|
634 } |
|
635 int simd_prefix_and_encode(Register dst, XMMRegister src, |
|
636 VexSimdPrefix pre, VexOpcode opc = VEX_OPCODE_0F) { |
|
637 return simd_prefix_and_encode(as_XMMRegister(dst->encoding()), xnoreg, src, pre, opc); |
|
638 } |
|
639 |
|
640 // Move/convert 64-bit integer value. |
|
641 int simd_prefix_and_encode_q(XMMRegister dst, XMMRegister nds, Register src, |
|
642 VexSimdPrefix pre) { |
|
643 bool rex_w = true; |
|
644 return simd_prefix_and_encode(dst, nds, as_XMMRegister(src->encoding()), pre, VEX_OPCODE_0F, rex_w); |
|
645 } |
|
646 int simd_prefix_and_encode_q(XMMRegister dst, Register src, VexSimdPrefix pre) { |
|
647 return simd_prefix_and_encode_q(dst, xnoreg, src, pre); |
|
648 } |
|
649 int simd_prefix_and_encode_q(Register dst, XMMRegister src, |
|
650 VexSimdPrefix pre, VexOpcode opc = VEX_OPCODE_0F) { |
|
651 bool rex_w = true; |
|
652 return simd_prefix_and_encode(as_XMMRegister(dst->encoding()), xnoreg, src, pre, opc, rex_w); |
|
653 } |
554 |
654 |
555 // Helper functions for groups of instructions |
655 // Helper functions for groups of instructions |
556 void emit_arith_b(int op1, int op2, Register dst, int imm8); |
656 void emit_arith_b(int op1, int op2, Register dst, int imm8); |
557 |
657 |
558 void emit_arith(int op1, int op2, Register dst, int32_t imm32); |
658 void emit_arith(int op1, int op2, Register dst, int32_t imm32); |
762 |
862 |
763 // Add Scalar Single-Precision Floating-Point Values |
863 // Add Scalar Single-Precision Floating-Point Values |
764 void addss(XMMRegister dst, Address src); |
864 void addss(XMMRegister dst, Address src); |
765 void addss(XMMRegister dst, XMMRegister src); |
865 void addss(XMMRegister dst, XMMRegister src); |
766 |
866 |
|
867 void andl(Address dst, int32_t imm32); |
767 void andl(Register dst, int32_t imm32); |
868 void andl(Register dst, int32_t imm32); |
768 void andl(Register dst, Address src); |
869 void andl(Register dst, Address src); |
769 void andl(Register dst, Register src); |
870 void andl(Register dst, Register src); |
770 |
871 |
771 void andq(Address dst, int32_t imm32); |
872 void andq(Address dst, int32_t imm32); |
772 void andq(Register dst, int32_t imm32); |
873 void andq(Register dst, int32_t imm32); |
773 void andq(Register dst, Address src); |
874 void andq(Register dst, Address src); |
774 void andq(Register dst, Register src); |
875 void andq(Register dst, Register src); |
775 |
876 |
776 // Bitwise Logical AND of Packed Double-Precision Floating-Point Values |
877 // Bitwise Logical AND of Packed Double-Precision Floating-Point Values |
777 void andpd(XMMRegister dst, Address src); |
|
778 void andpd(XMMRegister dst, XMMRegister src); |
878 void andpd(XMMRegister dst, XMMRegister src); |
|
879 |
|
880 // Bitwise Logical AND of Packed Single-Precision Floating-Point Values |
|
881 void andps(XMMRegister dst, XMMRegister src); |
779 |
882 |
780 void bsfl(Register dst, Register src); |
883 void bsfl(Register dst, Register src); |
781 void bsrl(Register dst, Register src); |
884 void bsrl(Register dst, Register src); |
782 |
885 |
783 #ifdef _LP64 |
886 #ifdef _LP64 |
835 |
938 |
836 void cmpxchgq(Register reg, Address adr); |
939 void cmpxchgq(Register reg, Address adr); |
837 |
940 |
838 // Ordered Compare Scalar Double-Precision Floating-Point Values and set EFLAGS |
941 // Ordered Compare Scalar Double-Precision Floating-Point Values and set EFLAGS |
839 void comisd(XMMRegister dst, Address src); |
942 void comisd(XMMRegister dst, Address src); |
|
943 void comisd(XMMRegister dst, XMMRegister src); |
840 |
944 |
841 // Ordered Compare Scalar Single-Precision Floating-Point Values and set EFLAGS |
945 // Ordered Compare Scalar Single-Precision Floating-Point Values and set EFLAGS |
842 void comiss(XMMRegister dst, Address src); |
946 void comiss(XMMRegister dst, Address src); |
|
947 void comiss(XMMRegister dst, XMMRegister src); |
843 |
948 |
844 // Identify processor type and features |
949 // Identify processor type and features |
845 void cpuid() { |
950 void cpuid() { |
846 emit_byte(0x0F); |
951 emit_byte(0x0F); |
847 emit_byte(0xA2); |
952 emit_byte(0xA2); |
848 } |
953 } |
849 |
954 |
850 // Convert Scalar Double-Precision Floating-Point Value to Scalar Single-Precision Floating-Point Value |
955 // Convert Scalar Double-Precision Floating-Point Value to Scalar Single-Precision Floating-Point Value |
851 void cvtsd2ss(XMMRegister dst, XMMRegister src); |
956 void cvtsd2ss(XMMRegister dst, XMMRegister src); |
|
957 void cvtsd2ss(XMMRegister dst, Address src); |
852 |
958 |
853 // Convert Doubleword Integer to Scalar Double-Precision Floating-Point Value |
959 // Convert Doubleword Integer to Scalar Double-Precision Floating-Point Value |
854 void cvtsi2sdl(XMMRegister dst, Register src); |
960 void cvtsi2sdl(XMMRegister dst, Register src); |
|
961 void cvtsi2sdl(XMMRegister dst, Address src); |
855 void cvtsi2sdq(XMMRegister dst, Register src); |
962 void cvtsi2sdq(XMMRegister dst, Register src); |
|
963 void cvtsi2sdq(XMMRegister dst, Address src); |
856 |
964 |
857 // Convert Doubleword Integer to Scalar Single-Precision Floating-Point Value |
965 // Convert Doubleword Integer to Scalar Single-Precision Floating-Point Value |
858 void cvtsi2ssl(XMMRegister dst, Register src); |
966 void cvtsi2ssl(XMMRegister dst, Register src); |
|
967 void cvtsi2ssl(XMMRegister dst, Address src); |
859 void cvtsi2ssq(XMMRegister dst, Register src); |
968 void cvtsi2ssq(XMMRegister dst, Register src); |
|
969 void cvtsi2ssq(XMMRegister dst, Address src); |
860 |
970 |
861 // Convert Packed Signed Doubleword Integers to Packed Double-Precision Floating-Point Value |
971 // Convert Packed Signed Doubleword Integers to Packed Double-Precision Floating-Point Value |
862 void cvtdq2pd(XMMRegister dst, XMMRegister src); |
972 void cvtdq2pd(XMMRegister dst, XMMRegister src); |
863 |
973 |
864 // Convert Packed Signed Doubleword Integers to Packed Single-Precision Floating-Point Value |
974 // Convert Packed Signed Doubleword Integers to Packed Single-Precision Floating-Point Value |
865 void cvtdq2ps(XMMRegister dst, XMMRegister src); |
975 void cvtdq2ps(XMMRegister dst, XMMRegister src); |
866 |
976 |
867 // Convert Scalar Single-Precision Floating-Point Value to Scalar Double-Precision Floating-Point Value |
977 // Convert Scalar Single-Precision Floating-Point Value to Scalar Double-Precision Floating-Point Value |
868 void cvtss2sd(XMMRegister dst, XMMRegister src); |
978 void cvtss2sd(XMMRegister dst, XMMRegister src); |
|
979 void cvtss2sd(XMMRegister dst, Address src); |
869 |
980 |
870 // Convert with Truncation Scalar Double-Precision Floating-Point Value to Doubleword Integer |
981 // Convert with Truncation Scalar Double-Precision Floating-Point Value to Doubleword Integer |
871 void cvttsd2sil(Register dst, Address src); |
982 void cvttsd2sil(Register dst, Address src); |
872 void cvttsd2sil(Register dst, XMMRegister src); |
983 void cvttsd2sil(Register dst, XMMRegister src); |
873 void cvttsd2siq(Register dst, XMMRegister src); |
984 void cvttsd2siq(Register dst, XMMRegister src); |
1427 void xchgl(Register dst, Register src); |
1550 void xchgl(Register dst, Register src); |
1428 |
1551 |
1429 void xchgq(Register reg, Address adr); |
1552 void xchgq(Register reg, Address adr); |
1430 void xchgq(Register dst, Register src); |
1553 void xchgq(Register dst, Register src); |
1431 |
1554 |
|
1555 // Get Value of Extended Control Register |
|
1556 void xgetbv() { |
|
1557 emit_byte(0x0F); |
|
1558 emit_byte(0x01); |
|
1559 emit_byte(0xD0); |
|
1560 } |
|
1561 |
1432 void xorl(Register dst, int32_t imm32); |
1562 void xorl(Register dst, int32_t imm32); |
1433 void xorl(Register dst, Address src); |
1563 void xorl(Register dst, Address src); |
1434 void xorl(Register dst, Register src); |
1564 void xorl(Register dst, Register src); |
1435 |
1565 |
1436 void xorq(Register dst, Address src); |
1566 void xorq(Register dst, Address src); |
1437 void xorq(Register dst, Register src); |
1567 void xorq(Register dst, Register src); |
1438 |
1568 |
1439 // Bitwise Logical XOR of Packed Double-Precision Floating-Point Values |
1569 // Bitwise Logical XOR of Packed Double-Precision Floating-Point Values |
|
1570 void xorpd(XMMRegister dst, XMMRegister src); |
|
1571 |
|
1572 // Bitwise Logical XOR of Packed Single-Precision Floating-Point Values |
|
1573 void xorps(XMMRegister dst, XMMRegister src); |
|
1574 |
|
1575 void set_byte_if_not_zero(Register dst); // sets reg to 1 if not zero, otherwise 0 |
|
1576 |
|
1577 protected: |
|
1578 // Next instructions require address alignment 16 bytes SSE mode. |
|
1579 // They should be called only from corresponding MacroAssembler instructions. |
|
1580 void andpd(XMMRegister dst, Address src); |
|
1581 void andps(XMMRegister dst, Address src); |
1440 void xorpd(XMMRegister dst, Address src); |
1582 void xorpd(XMMRegister dst, Address src); |
1441 void xorpd(XMMRegister dst, XMMRegister src); |
|
1442 |
|
1443 // Bitwise Logical XOR of Packed Single-Precision Floating-Point Values |
|
1444 void xorps(XMMRegister dst, Address src); |
1583 void xorps(XMMRegister dst, Address src); |
1445 void xorps(XMMRegister dst, XMMRegister src); |
1584 |
1446 |
|
1447 void set_byte_if_not_zero(Register dst); // sets reg to 1 if not zero, otherwise 0 |
|
1448 }; |
1585 }; |
1449 |
1586 |
1450 |
1587 |
1451 // MacroAssembler extends Assembler by frequently used macros. |
1588 // MacroAssembler extends Assembler by frequently used macros. |
1452 // |
1589 // |
2209 void movss(Address dst, XMMRegister src) { Assembler::movss(dst, src); } |
2352 void movss(Address dst, XMMRegister src) { Assembler::movss(dst, src); } |
2210 void movss(XMMRegister dst, XMMRegister src) { Assembler::movss(dst, src); } |
2353 void movss(XMMRegister dst, XMMRegister src) { Assembler::movss(dst, src); } |
2211 void movss(XMMRegister dst, Address src) { Assembler::movss(dst, src); } |
2354 void movss(XMMRegister dst, Address src) { Assembler::movss(dst, src); } |
2212 void movss(XMMRegister dst, AddressLiteral src); |
2355 void movss(XMMRegister dst, AddressLiteral src); |
2213 |
2356 |
2214 void movlpd(XMMRegister dst, Address src) {Assembler::movlpd(dst, src); } |
2357 void movlpd(XMMRegister dst, Address src) {Assembler::movlpd(dst, src); } |
2215 void movlpd(XMMRegister dst, AddressLiteral src); |
2358 void movlpd(XMMRegister dst, AddressLiteral src); |
2216 |
2359 |
2217 public: |
2360 public: |
2218 |
2361 |
2219 void addsd(XMMRegister dst, XMMRegister src) { Assembler::addsd(dst, src); } |
2362 void addsd(XMMRegister dst, XMMRegister src) { Assembler::addsd(dst, src); } |
2220 void addsd(XMMRegister dst, Address src) { Assembler::addsd(dst, src); } |
2363 void addsd(XMMRegister dst, Address src) { Assembler::addsd(dst, src); } |
2221 void addsd(XMMRegister dst, AddressLiteral src) { Assembler::addsd(dst, as_Address(src)); } |
2364 void addsd(XMMRegister dst, AddressLiteral src); |
2222 |
2365 |
2223 void addss(XMMRegister dst, XMMRegister src) { Assembler::addss(dst, src); } |
2366 void addss(XMMRegister dst, XMMRegister src) { Assembler::addss(dst, src); } |
2224 void addss(XMMRegister dst, Address src) { Assembler::addss(dst, src); } |
2367 void addss(XMMRegister dst, Address src) { Assembler::addss(dst, src); } |
2225 void addss(XMMRegister dst, AddressLiteral src) { Assembler::addss(dst, as_Address(src)); } |
2368 void addss(XMMRegister dst, AddressLiteral src); |
2226 |
2369 |
2227 void divsd(XMMRegister dst, XMMRegister src) { Assembler::divsd(dst, src); } |
2370 void divsd(XMMRegister dst, XMMRegister src) { Assembler::divsd(dst, src); } |
2228 void divsd(XMMRegister dst, Address src) { Assembler::divsd(dst, src); } |
2371 void divsd(XMMRegister dst, Address src) { Assembler::divsd(dst, src); } |
2229 void divsd(XMMRegister dst, AddressLiteral src) { Assembler::divsd(dst, as_Address(src)); } |
2372 void divsd(XMMRegister dst, AddressLiteral src); |
2230 |
2373 |
2231 void divss(XMMRegister dst, XMMRegister src) { Assembler::divss(dst, src); } |
2374 void divss(XMMRegister dst, XMMRegister src) { Assembler::divss(dst, src); } |
2232 void divss(XMMRegister dst, Address src) { Assembler::divss(dst, src); } |
2375 void divss(XMMRegister dst, Address src) { Assembler::divss(dst, src); } |
2233 void divss(XMMRegister dst, AddressLiteral src) { Assembler::divss(dst, as_Address(src)); } |
2376 void divss(XMMRegister dst, AddressLiteral src); |
2234 |
2377 |
2235 void movsd(XMMRegister dst, XMMRegister src) { Assembler::movsd(dst, src); } |
2378 void movsd(XMMRegister dst, XMMRegister src) { Assembler::movsd(dst, src); } |
2236 void movsd(Address dst, XMMRegister src) { Assembler::movsd(dst, src); } |
2379 void movsd(Address dst, XMMRegister src) { Assembler::movsd(dst, src); } |
2237 void movsd(XMMRegister dst, Address src) { Assembler::movsd(dst, src); } |
2380 void movsd(XMMRegister dst, Address src) { Assembler::movsd(dst, src); } |
2238 void movsd(XMMRegister dst, AddressLiteral src) { Assembler::movsd(dst, as_Address(src)); } |
2381 void movsd(XMMRegister dst, AddressLiteral src); |
2239 |
2382 |
2240 void mulsd(XMMRegister dst, XMMRegister src) { Assembler::mulsd(dst, src); } |
2383 void mulsd(XMMRegister dst, XMMRegister src) { Assembler::mulsd(dst, src); } |
2241 void mulsd(XMMRegister dst, Address src) { Assembler::mulsd(dst, src); } |
2384 void mulsd(XMMRegister dst, Address src) { Assembler::mulsd(dst, src); } |
2242 void mulsd(XMMRegister dst, AddressLiteral src) { Assembler::mulsd(dst, as_Address(src)); } |
2385 void mulsd(XMMRegister dst, AddressLiteral src); |
2243 |
2386 |
2244 void mulss(XMMRegister dst, XMMRegister src) { Assembler::mulss(dst, src); } |
2387 void mulss(XMMRegister dst, XMMRegister src) { Assembler::mulss(dst, src); } |
2245 void mulss(XMMRegister dst, Address src) { Assembler::mulss(dst, src); } |
2388 void mulss(XMMRegister dst, Address src) { Assembler::mulss(dst, src); } |
2246 void mulss(XMMRegister dst, AddressLiteral src) { Assembler::mulss(dst, as_Address(src)); } |
2389 void mulss(XMMRegister dst, AddressLiteral src); |
2247 |
2390 |
2248 void sqrtsd(XMMRegister dst, XMMRegister src) { Assembler::sqrtsd(dst, src); } |
2391 void sqrtsd(XMMRegister dst, XMMRegister src) { Assembler::sqrtsd(dst, src); } |
2249 void sqrtsd(XMMRegister dst, Address src) { Assembler::sqrtsd(dst, src); } |
2392 void sqrtsd(XMMRegister dst, Address src) { Assembler::sqrtsd(dst, src); } |
2250 void sqrtsd(XMMRegister dst, AddressLiteral src) { Assembler::sqrtsd(dst, as_Address(src)); } |
2393 void sqrtsd(XMMRegister dst, AddressLiteral src); |
2251 |
2394 |
2252 void sqrtss(XMMRegister dst, XMMRegister src) { Assembler::sqrtss(dst, src); } |
2395 void sqrtss(XMMRegister dst, XMMRegister src) { Assembler::sqrtss(dst, src); } |
2253 void sqrtss(XMMRegister dst, Address src) { Assembler::sqrtss(dst, src); } |
2396 void sqrtss(XMMRegister dst, Address src) { Assembler::sqrtss(dst, src); } |
2254 void sqrtss(XMMRegister dst, AddressLiteral src) { Assembler::sqrtss(dst, as_Address(src)); } |
2397 void sqrtss(XMMRegister dst, AddressLiteral src); |
2255 |
2398 |
2256 void subsd(XMMRegister dst, XMMRegister src) { Assembler::subsd(dst, src); } |
2399 void subsd(XMMRegister dst, XMMRegister src) { Assembler::subsd(dst, src); } |
2257 void subsd(XMMRegister dst, Address src) { Assembler::subsd(dst, src); } |
2400 void subsd(XMMRegister dst, Address src) { Assembler::subsd(dst, src); } |
2258 void subsd(XMMRegister dst, AddressLiteral src) { Assembler::subsd(dst, as_Address(src)); } |
2401 void subsd(XMMRegister dst, AddressLiteral src); |
2259 |
2402 |
2260 void subss(XMMRegister dst, XMMRegister src) { Assembler::subss(dst, src); } |
2403 void subss(XMMRegister dst, XMMRegister src) { Assembler::subss(dst, src); } |
2261 void subss(XMMRegister dst, Address src) { Assembler::subss(dst, src); } |
2404 void subss(XMMRegister dst, Address src) { Assembler::subss(dst, src); } |
2262 void subss(XMMRegister dst, AddressLiteral src) { Assembler::subss(dst, as_Address(src)); } |
2405 void subss(XMMRegister dst, AddressLiteral src); |
2263 |
2406 |
2264 void ucomiss(XMMRegister dst, XMMRegister src) { Assembler::ucomiss(dst, src); } |
2407 void ucomiss(XMMRegister dst, XMMRegister src) { Assembler::ucomiss(dst, src); } |
2265 void ucomiss(XMMRegister dst, Address src) { Assembler::ucomiss(dst, src); } |
2408 void ucomiss(XMMRegister dst, Address src) { Assembler::ucomiss(dst, src); } |
2266 void ucomiss(XMMRegister dst, AddressLiteral src); |
2409 void ucomiss(XMMRegister dst, AddressLiteral src); |
2267 |
2410 |
2268 void ucomisd(XMMRegister dst, XMMRegister src) { Assembler::ucomisd(dst, src); } |
2411 void ucomisd(XMMRegister dst, XMMRegister src) { Assembler::ucomisd(dst, src); } |
2269 void ucomisd(XMMRegister dst, Address src) { Assembler::ucomisd(dst, src); } |
2412 void ucomisd(XMMRegister dst, Address src) { Assembler::ucomisd(dst, src); } |
2270 void ucomisd(XMMRegister dst, AddressLiteral src); |
2413 void ucomisd(XMMRegister dst, AddressLiteral src); |
2271 |
2414 |
2272 // Bitwise Logical XOR of Packed Double-Precision Floating-Point Values |
2415 // Bitwise Logical XOR of Packed Double-Precision Floating-Point Values |
2273 void xorpd(XMMRegister dst, XMMRegister src) { Assembler::xorpd(dst, src); } |
2416 void xorpd(XMMRegister dst, XMMRegister src) { Assembler::xorpd(dst, src); } |
2274 void xorpd(XMMRegister dst, Address src) { Assembler::xorpd(dst, src); } |
2417 void xorpd(XMMRegister dst, Address src) { Assembler::xorpd(dst, src); } |