comparison src/cpu/x86/vm/assembler_x86.hpp @ 17780:606acabe7b5c

8031320: Use Intel RTM instructions for locks Summary: Use RTM for inflated locks and stack locks. Reviewed-by: iveresov, twisti, roland, dcubed
author kvn
date Thu, 20 Mar 2014 17:49:27 -0700
parents 8a8ff6b577ed
children 52b4284cb496 b1bc1af04c6e
comparison
equal deleted inserted replaced
17778:a48e16541e6b 17780:606acabe7b5c
1449 void vpackuswb(XMMRegister dst, XMMRegister nds, XMMRegister src, bool vector256); 1449 void vpackuswb(XMMRegister dst, XMMRegister nds, XMMRegister src, bool vector256);
1450 1450
1451 // Pemutation of 64bit words 1451 // Pemutation of 64bit words
1452 void vpermq(XMMRegister dst, XMMRegister src, int imm8, bool vector256); 1452 void vpermq(XMMRegister dst, XMMRegister src, int imm8, bool vector256);
1453 1453
1454 void pause();
1455
1454 // SSE4.2 string instructions 1456 // SSE4.2 string instructions
1455 void pcmpestri(XMMRegister xmm1, XMMRegister xmm2, int imm8); 1457 void pcmpestri(XMMRegister xmm1, XMMRegister xmm2, int imm8);
1456 void pcmpestri(XMMRegister xmm1, Address src, int imm8); 1458 void pcmpestri(XMMRegister xmm1, Address src, int imm8);
1457 1459
1458 // SSE 4.1 extract 1460 // SSE 4.1 extract
1533 1535
1534 void rcll(Register dst, int imm8); 1536 void rcll(Register dst, int imm8);
1535 1537
1536 void rclq(Register dst, int imm8); 1538 void rclq(Register dst, int imm8);
1537 1539
1540 void rdtsc();
1541
1538 void ret(int imm16); 1542 void ret(int imm16);
1539 1543
1540 void sahf(); 1544 void sahf();
1541 1545
1542 void sarl(Register dst, int imm8); 1546 void sarl(Register dst, int imm8);
1630 1634
1631 // Unordered Compare Scalar Single-Precision Floating-Point Values and set EFLAGS 1635 // Unordered Compare Scalar Single-Precision Floating-Point Values and set EFLAGS
1632 void ucomiss(XMMRegister dst, Address src); 1636 void ucomiss(XMMRegister dst, Address src);
1633 void ucomiss(XMMRegister dst, XMMRegister src); 1637 void ucomiss(XMMRegister dst, XMMRegister src);
1634 1638
1639 void xabort(int8_t imm8);
1640
1635 void xaddl(Address dst, Register src); 1641 void xaddl(Address dst, Register src);
1636 1642
1637 void xaddq(Address dst, Register src); 1643 void xaddq(Address dst, Register src);
1644
1645 void xbegin(Label& abort, relocInfo::relocType rtype = relocInfo::none);
1638 1646
1639 void xchgl(Register reg, Address adr); 1647 void xchgl(Register reg, Address adr);
1640 void xchgl(Register dst, Register src); 1648 void xchgl(Register dst, Register src);
1641 1649
1642 void xchgq(Register reg, Address adr); 1650 void xchgq(Register reg, Address adr);
1643 void xchgq(Register dst, Register src); 1651 void xchgq(Register dst, Register src);
1652
1653 void xend();
1644 1654
1645 // Get Value of Extended Control Register 1655 // Get Value of Extended Control Register
1646 void xgetbv(); 1656 void xgetbv();
1647 1657
1648 void xorl(Register dst, int32_t imm32); 1658 void xorl(Register dst, int32_t imm32);