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 ...@@ -601,6 +601,14 @@ struct
"FMOVWP", LTYPE3, AFMOVWP, "FMOVWP", LTYPE3, AFMOVWP,
"FMOVX", LTYPE3, AFMOVX, "FMOVX", LTYPE3, AFMOVX,
"FMOVXP", LTYPE3, AFMOVXP, "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, "FCOMB", LTYPE3, AFCOMB,
"FCOMBP", LTYPE3, AFCOMBP, "FCOMBP", LTYPE3, AFCOMBP,
"FCOMD", LTYPE3, AFCOMD, "FCOMD", LTYPE3, AFCOMD,
......
...@@ -426,6 +426,15 @@ enum as ...@@ -426,6 +426,15 @@ enum as
ACMOVWPL, ACMOVWPL,
ACMOVWPS, ACMOVWPS,
AFCMOVCC,
AFCMOVCS,
AFCMOVEQ,
AFCMOVHI,
AFCMOVLS,
AFCMOVNE,
AFCMOVNU,
AFCMOVUN,
ALAST ALAST
}; };
......
...@@ -302,6 +302,11 @@ uchar yfmvp[] = ...@@ -302,6 +302,11 @@ uchar yfmvp[] =
Yf0, Ym, Zo_m, 2, Yf0, Ym, Zo_m, 2,
0 0
}; };
uchar yfcmv[] =
{
Yrf, Yf0, Zm_o, 2,
0
};
uchar yfadd[] = uchar yfadd[] =
{ {
Ym, Yf0, Zm_o, 2, Ym, Yf0, Zm_o, 2,
...@@ -730,5 +735,15 @@ Optab optab[] = ...@@ -730,5 +735,15 @@ Optab optab[] =
{ ACMOVWPC, yml_rl, Pq, 0x4b }, { ACMOVWPC, yml_rl, Pq, 0x4b },
{ ACMOVWPL, yml_rl, Pq, 0x49 }, { ACMOVWPL, yml_rl, Pq, 0x49 },
{ ACMOVWPS, yml_rl, Pq, 0x4a }, { 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 0
}; };
...@@ -1004,6 +1004,10 @@ static Optable optabDA[8+8] = ...@@ -1004,6 +1004,10 @@ static Optable optabDA[8+8] =
[0x05] 0,0, "FSUBRL %e,F0", [0x05] 0,0, "FSUBRL %e,F0",
[0x06] 0,0, "FDIVL %e,F0", [0x06] 0,0, "FDIVL %e,F0",
[0x07] 0,0, "FDIVRL %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", [0x0d] R1,0, "FUCOMPP",
}; };
...@@ -1014,6 +1018,10 @@ static Optable optabDB[8+64] = ...@@ -1014,6 +1018,10 @@ static Optable optabDB[8+64] =
[0x03] 0,0, "FMOVLP F0,%e", [0x03] 0,0, "FMOVLP F0,%e",
[0x05] 0,0, "FMOVX %e,F0", [0x05] 0,0, "FMOVX %e,F0",
[0x07] 0,0, "FMOVXP F0,%e", [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", [0x0d] 0,0, "FUCOMI F0,%f",
[0x0e] 0,0, "FCOMI F0,%f", [0x0e] 0,0, "FCOMI F0,%f",
[0x2a] 0,0, "FCLEX", [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