Changeset 270208 in webkit for trunk/Source/JavaScriptCore/offlineasm/x86.rb
- Timestamp:
- Nov 27, 2020, 4:02:55 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/offlineasm/x86.rb
r269929 r270208 1793 1793 when "leap" 1794 1794 $asm.puts "lea#{x86Suffix(:ptr)} #{orderOperands(operands[0].x86AddressOperand(:ptr), operands[1].x86Operand(:ptr))}" 1795 when "memfence" 1795 when "memfence", "fence" 1796 1796 sp = RegisterID.new(nil, "sp") 1797 1797 if isIntelSyntax … … 1840 1840 end 1841 1841 $asm.puts "mov#{x86Suffix(:ptr)} #{orderOperands(operands[0].x86Operand(:ptr), mem)}" 1842 when "atomicxchgaddb" 1843 $asm.puts "lock" 1844 $asm.puts "xadd#{x86Suffix(:byte)} #{x86Operands(:byte, :byte)}" 1845 when "atomicxchgaddh" 1846 $asm.puts "lock" 1847 $asm.puts "xadd#{x86Suffix(:half)} #{x86Operands(:half, :half)}" 1848 when "atomicxchgaddi" 1849 $asm.puts "lock" 1850 $asm.puts "xadd#{x86Suffix(:int)} #{x86Operands(:int, :int)}" 1851 when "atomicxchgaddq" 1852 $asm.puts "lock" 1853 $asm.puts "xadd#{x86Suffix(:quad)} #{x86Operands(:quad, :quad)}" 1854 when "atomicxchgsubb" 1855 $asm.puts "neg#{x86Suffix(:byte)} #{operands[0].x86Operand(:byte)}" 1856 $asm.puts "lock" 1857 $asm.puts "xadd#{x86Suffix(:byte)} #{x86Operands(:byte, :byte)}" 1858 when "atomicxchgsubh" 1859 $asm.puts "neg#{x86Suffix(:half)} #{operands[0].x86Operand(:half)}" 1860 $asm.puts "lock" 1861 $asm.puts "xadd#{x86Suffix(:half)} #{x86Operands(:half, :half)}" 1862 when "atomicxchgsubi" 1863 $asm.puts "neg#{x86Suffix(:int)} #{operands[0].x86Operand(:int)}" 1864 $asm.puts "lock" 1865 $asm.puts "xadd#{x86Suffix(:int)} #{x86Operands(:int, :int)}" 1866 when "atomicxchgsubq" 1867 $asm.puts "neg#{x86Suffix(:quad)} #{operands[0].x86Operand(:quad)}" 1868 $asm.puts "lock" 1869 $asm.puts "xadd#{x86Suffix(:quad)} #{x86Operands(:quad, :quad)}" 1870 when "atomicxchgb" 1871 $asm.puts "xchg#{x86Suffix(:byte)} #{x86Operands(:byte, :byte)}" 1872 when "atomicxchgh" 1873 $asm.puts "xchg#{x86Suffix(:half)} #{x86Operands(:half, :half)}" 1874 when "atomicxchgi" 1875 $asm.puts "xchg#{x86Suffix(:int)} #{x86Operands(:int, :int)}" 1876 when "atomicxchgq" 1877 $asm.puts "xchg#{x86Suffix(:quad)} #{x86Operands(:quad, :quad)}" 1878 when "batomicweakcasb" 1879 raise "first operand must be t0" unless operands[0].is_a? RegisterID and operands[0].name == 't0' 1880 $asm.puts "lock" 1881 $asm.puts "cmpxchg#{x86Suffix(:byte)} #{orderOperands(operands[1].x86Operand(:byte), operands[2].x86Operand(:byte))}" 1882 $asm.puts "jne #{operands.last.asmLabel}" 1883 when "batomicweakcash" 1884 raise "first operand must be t0" unless operands[0].is_a? RegisterID and operands[0].name == 't0' 1885 $asm.puts "lock" 1886 $asm.puts "cmpxchg#{x86Suffix(:half)} #{orderOperands(operands[1].x86Operand(:half), operands[2].x86Operand(:half))}" 1887 $asm.puts "jne #{operands.last.asmLabel}" 1888 when "batomicweakcasi" 1889 raise "first operand must be t0" unless operands[0].is_a? RegisterID and operands[0].name == 't0' 1890 $asm.puts "lock" 1891 $asm.puts "cmpxchg#{x86Suffix(:int)} #{orderOperands(operands[1].x86Operand(:int), operands[2].x86Operand(:int))}" 1892 $asm.puts "jne #{operands.last.asmLabel}" 1893 when "batomicweakcasq" 1894 raise "first operand must be t0" unless operands[0].is_a? RegisterID and operands[0].name == 't0' 1895 $asm.puts "lock" 1896 $asm.puts "cmpxchg#{x86Suffix(:quad)} #{orderOperands(operands[1].x86Operand(:quad), operands[2].x86Operand(:quad))}" 1897 $asm.puts "jne #{operands.last.asmLabel}" 1898 when "atomicweakcasb" 1899 raise "first operand must be t0" unless operands[0].is_a? RegisterID and operands[0].name == 't0' 1900 $asm.puts "lock" 1901 $asm.puts "cmpxchg#{x86Suffix(:byte)} #{orderOperands(operands[1].x86Operand(:byte), operands[2].x86Operand(:byte))}" 1902 when "atomicweakcash" 1903 raise "first operand must be t0" unless operands[0].is_a? RegisterID and operands[0].name == 't0' 1904 $asm.puts "lock" 1905 $asm.puts "cmpxchg#{x86Suffix(:half)} #{orderOperands(operands[1].x86Operand(:half), operands[2].x86Operand(:half))}" 1906 when "atomicweakcasi" 1907 raise "first operand must be t0" unless operands[0].is_a? RegisterID and operands[0].name == 't0' 1908 $asm.puts "lock" 1909 $asm.puts "cmpxchg#{x86Suffix(:int)} #{orderOperands(operands[1].x86Operand(:int), operands[2].x86Operand(:int))}" 1910 when "atomicweakcasq" 1911 raise "first operand must be t0" unless operands[0].is_a? RegisterID and operands[0].name == 't0' 1912 $asm.puts "lock" 1913 $asm.puts "cmpxchg#{x86Suffix(:quad)} #{orderOperands(operands[1].x86Operand(:quad), operands[2].x86Operand(:quad))}" 1842 1914 else 1843 1915 lowerDefault
Note:
See TracChangeset
for help on using the changeset viewer.