summary refs log tree commit diff
path: root/lisc
diff options
context:
space:
mode:
Diffstat (limited to 'lisc')
-rw-r--r--lisc/emit.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/lisc/emit.c b/lisc/emit.c
index aaac1b3..bdafde4 100644
--- a/lisc/emit.c
+++ b/lisc/emit.c
@@ -45,11 +45,15 @@ static struct {
 	{ OSub,    Ka, "-sub%k %1, %=" },
 	{ OAnd,    Ki, "+and%k %1, %=" },
 	{ OMul,    Ki, "+imul%k %1, %=" },
+	{ OMul,    Ks, "+mulss %1, %=" }, /* fixme */
+	{ OMul,    Kd, "+mulsd %1, %=" },
 	{ ODiv,    Ka, "-div%k %1, %=" },
-	{ OStorel, Ki, "movq %L0, %M1" },
-	{ OStorew, Ki, "movl %W0, %M1" },
-	{ OStoreh, Ki, "movw %H0, %M1" },
-	{ OStoreb, Ki, "movb %B0, %M1" },
+	{ OStorel, Ka, "movq %L0, %M1" },
+	{ OStorew, Ka, "movl %W0, %M1" },
+	{ OStoreh, Ka, "movw %H0, %M1" },
+	{ OStoreb, Ka, "movb %B0, %M1" },
+	{ OStores, Ka, "movss %S0, %M1" },
+	{ OStored, Ka, "movsd %D0, %M1" },
 	{ OLoadl,  Kl, "movq %M0, %=" },
 	{ OLoadsw, Kl, "movslq %M0, %L=" },
 	{ OLoadsw, Kw, "movl %M0, %W=" },
@@ -58,6 +62,8 @@ static struct {
 	{ OLoaduh, Ki, "movzw%k %M0, %=" },
 	{ OLoadsb, Ki, "movsb%k %M0, %=" },
 	{ OLoadub, Ki, "movzb%k %M0, %=" },
+	{ OLoads,  Ks, "movss %M0, %=" },     /* fixme, Kf */
+	{ OLoadd,  Kd, "movsd %M0, %=" },
 	{ OExtsw,  Kl, "movslq %W0, %L=" },
 	{ OExtuw,  Kl, "movl %W0, %W=" },
 	{ OExtsh,  Ki, "movsw%k %H0, %=" },