Commit 4af0a58e authored by Evan Shaw's avatar Evan Shaw Committed by Russ Cox

8a/8l: Added FCMOVcc instructions

Thanks to Charles Dorian for the help.

R=rsc
CC=Charlie Dorian, golang-dev
https://golang.org/cl/207049
parent d8675d25
......@@ -601,6 +601,14 @@ struct
"FMOVWP", LTYPE3, AFMOVWP,
"FMOVX", LTYPE3, AFMOVX,
"FMOVXP", LTYPE3, AFMOVXP,
"FCMOVCC", LTYPE3, AFCMOVCC,
"FCMOVCS", LTYPE3, AFCMOVCS,
"FCMOVEQ", LTYPE3, AFCMOVEQ,
"FCMOVHI", LTYPE3, AFCMOVHI,
"FCMOVLS", LTYPE3, AFCMOVLS,
"FCMOVNE", LTYPE3, AFCMOVNE,
"FCMOVNU", LTYPE3, AFCMOVNU,
"FCMOVUN", LTYPE3, AFCMOVUN,
"FCOMB", LTYPE3, AFCOMB,
"FCOMBP", LTYPE3, AFCOMBP,
"FCOMD", LTYPE3, AFCOMD,
......
......@@ -426,6 +426,15 @@ enum as
ACMOVWPL,
ACMOVWPS,
AFCMOVCC,
AFCMOVCS,
AFCMOVEQ,
AFCMOVHI,
AFCMOVLS,
AFCMOVNE,
AFCMOVNU,
AFCMOVUN,
ALAST
};
......
......@@ -302,6 +302,11 @@ uchar yfmvp[] =
Yf0, Ym, Zo_m, 2,
0
};
uchar yfcmv[] =
{
Yrf, Yf0, Zm_o, 2,
0
};
uchar yfadd[] =
{
Ym, Yf0, Zm_o, 2,
......@@ -730,5 +735,15 @@ Optab optab[] =
{ ACMOVWPC, yml_rl, Pq, 0x4b },
{ ACMOVWPL, yml_rl, Pq, 0x49 },
{ ACMOVWPS, yml_rl, Pq, 0x4a },
{ AFCMOVCC, yfcmv, Px, 0xdb,(00) },
{ AFCMOVCS, yfcmv, Px, 0xda,(00) },
{ AFCMOVEQ, yfcmv, Px, 0xda,(01) },
{ AFCMOVHI, yfcmv, Px, 0xdb,(02) },
{ AFCMOVLS, yfcmv, Px, 0xda,(02) },
{ AFCMOVNE, yfcmv, Px, 0xdb,(01) },
{ AFCMOVNU, yfcmv, Px, 0xdb,(03) },
{ AFCMOVUN, yfcmv, Px, 0xda,(03) },
0
};
......@@ -1004,6 +1004,10 @@ static Optable optabDA[8+8] =
[0x05] 0,0, "FSUBRL %e,F0",
[0x06] 0,0, "FDIVL %e,F0",
[0x07] 0,0, "FDIVRL %e,F0",
[0x08] 0,0, "FCMOVCS %f,F0",
[0x09] 0,0, "FCMOVEQ %f,F0",
[0x0a] 0,0, "FCMOVLS %f,F0",
[0x0b] 0,0, "FCMOVUN %f,F0",
[0x0d] R1,0, "FUCOMPP",
};
......@@ -1014,6 +1018,10 @@ static Optable optabDB[8+64] =
[0x03] 0,0, "FMOVLP F0,%e",
[0x05] 0,0, "FMOVX %e,F0",
[0x07] 0,0, "FMOVXP F0,%e",
[0x08] 0,0, "FCMOVCC %f,F0",
[0x09] 0,0, "FCMOVNE %f,F0",
[0x0a] 0,0, "FCMOVHI %f,F0",
[0x0b] 0,0, "FCMOVNU %f,F0",
[0x0d] 0,0, "FUCOMI F0,%f",
[0x0e] 0,0, "FCOMI F0,%f",
[0x2a] 0,0, "FCLEX",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment