Peter Cawley
2014-09-21 15:54:06 UTC
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",
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",