shld / shrd for dynasm

  • From: Peter Cawley <corsix@xxxxxxxxxx>
  • To: luajit@xxxxxxxxxxxxx
  • Date: Sun, 21 Sep 2014 16:54:06 +0100

Hi Mike,

It seems that dynasm for x86/x64 doesn't currently know about the shld
and shrd instructions. I believe that the following patch correctly
teaches it about these instructions, and would appreciate the patch
being integrated upstream.

Regards,
Peter

diff --git a/dynasm/dasm_x86.lua b/dynasm/dasm_x86.lua
index 824c634..37024a7 100644
--- a/dynasm/dasm_x86.lua
+++ b/dynasm/dasm_x86.lua
@@ -1084,6 +1084,9 @@ local map_op = {
   rdtsc_0 =    "0F31", -- P1+
   cpuid_0 =    "0FA2", -- P1+

+  shld_3 = "mriqdw:0FA4RmU|mrCqdw:0FA5Rm",
+  shrd_3 = "mriqdw:0FACRmU|mrCqdw:0FADRm",
+
   -- floating point ops
   fst_1 =      "ff:DDD0r|xd:D92m|xq:nDD2m",
   fstp_1 =     "ff:DDD8r|xd:D93m|xq:nDD3m|xt:DB7m",

Other related posts: