< prev index next >

src/cpu/x86/vm/assembler_x86.hpp

Print this page




1487         if (offset < -128) {
1488           offset = -128;
1489         }
1490 
1491         lock();
1492         addl(Address(rsp, offset), 0);// Assert the lock# signal here
1493       }
1494     }
1495   }
1496 
1497   void mfence();
1498 
1499   // Moves
1500 
1501   void mov64(Register dst, int64_t imm64);
1502 
1503   void movb(Address dst, Register src);
1504   void movb(Address dst, int imm8);
1505   void movb(Register dst, Address src);
1506 


1507   void kmovql(KRegister dst, KRegister src);
1508   void kmovql(KRegister dst, Register src);
1509   void kmovdl(KRegister dst, Register src);
1510   void kmovwl(KRegister dst, Register src);
1511   void kmovql(Address dst, KRegister src);
1512   void kmovql(KRegister dst, Address src);
1513 
1514   void movdl(XMMRegister dst, Register src);
1515   void movdl(Register dst, XMMRegister src);
1516   void movdl(XMMRegister dst, Address src);
1517   void movdl(Address dst, XMMRegister src);
1518 
1519   // Move Double Quadword
1520   void movdq(XMMRegister dst, Register src);
1521   void movdq(Register dst, XMMRegister src);
1522 
1523   // Move Aligned Double Quadword
1524   void movdqa(XMMRegister dst, XMMRegister src);
1525   void movdqa(XMMRegister dst, Address src);
1526 


1750   void punpcklbw(XMMRegister dst, Address src);
1751 
1752   // Interleave Low Doublewords
1753   void punpckldq(XMMRegister dst, XMMRegister src);
1754   void punpckldq(XMMRegister dst, Address src);
1755 
1756   // Interleave Low Quadwords
1757   void punpcklqdq(XMMRegister dst, XMMRegister src);
1758 
1759 #ifndef _LP64 // no 32bit push/pop on amd64
1760   void pushl(Address src);
1761 #endif
1762 
1763   void pushq(Address src);
1764 
1765   void rcll(Register dst, int imm8);
1766 
1767   void rclq(Register dst, int imm8);
1768 
1769   void rcrq(Register dst, int imm8);




1770 
1771   void rdtsc();
1772 
1773   void ret(int imm16);
1774 
1775 #ifdef _LP64
1776   void rorq(Register dst, int imm8);
1777   void rorxq(Register dst, Register src, int imm8);
1778 #endif
1779 
1780   void sahf();
1781 
1782   void sarl(Register dst, int imm8);
1783   void sarl(Register dst);
1784 
1785   void sarq(Register dst, int imm8);
1786   void sarq(Register dst);
1787 
1788   void sbbl(Address dst, int32_t imm32);
1789   void sbbl(Register dst, int32_t imm32);




1487         if (offset < -128) {
1488           offset = -128;
1489         }
1490 
1491         lock();
1492         addl(Address(rsp, offset), 0);// Assert the lock# signal here
1493       }
1494     }
1495   }
1496 
1497   void mfence();
1498 
1499   // Moves
1500 
1501   void mov64(Register dst, int64_t imm64);
1502 
1503   void movb(Address dst, Register src);
1504   void movb(Address dst, int imm8);
1505   void movb(Register dst, Address src);
1506 
1507   void movddup(XMMRegister dst, XMMRegister src);
1508 
1509   void kmovql(KRegister dst, KRegister src);
1510   void kmovql(KRegister dst, Register src);
1511   void kmovdl(KRegister dst, Register src);
1512   void kmovwl(KRegister dst, Register src);
1513   void kmovql(Address dst, KRegister src);
1514   void kmovql(KRegister dst, Address src);
1515 
1516   void movdl(XMMRegister dst, Register src);
1517   void movdl(Register dst, XMMRegister src);
1518   void movdl(XMMRegister dst, Address src);
1519   void movdl(Address dst, XMMRegister src);
1520 
1521   // Move Double Quadword
1522   void movdq(XMMRegister dst, Register src);
1523   void movdq(Register dst, XMMRegister src);
1524 
1525   // Move Aligned Double Quadword
1526   void movdqa(XMMRegister dst, XMMRegister src);
1527   void movdqa(XMMRegister dst, Address src);
1528 


1752   void punpcklbw(XMMRegister dst, Address src);
1753 
1754   // Interleave Low Doublewords
1755   void punpckldq(XMMRegister dst, XMMRegister src);
1756   void punpckldq(XMMRegister dst, Address src);
1757 
1758   // Interleave Low Quadwords
1759   void punpcklqdq(XMMRegister dst, XMMRegister src);
1760 
1761 #ifndef _LP64 // no 32bit push/pop on amd64
1762   void pushl(Address src);
1763 #endif
1764 
1765   void pushq(Address src);
1766 
1767   void rcll(Register dst, int imm8);
1768 
1769   void rclq(Register dst, int imm8);
1770 
1771   void rcrq(Register dst, int imm8);
1772 
1773   void rcpps(XMMRegister dst, XMMRegister src);
1774 
1775   void rcpss(XMMRegister dst, XMMRegister src);
1776 
1777   void rdtsc();
1778 
1779   void ret(int imm16);
1780 
1781 #ifdef _LP64
1782   void rorq(Register dst, int imm8);
1783   void rorxq(Register dst, Register src, int imm8);
1784 #endif
1785 
1786   void sahf();
1787 
1788   void sarl(Register dst, int imm8);
1789   void sarl(Register dst);
1790 
1791   void sarq(Register dst, int imm8);
1792   void sarq(Register dst);
1793 
1794   void sbbl(Address dst, int32_t imm32);
1795   void sbbl(Register dst, int32_t imm32);


< prev index next >