Commit 36d37070 authored by Adam Langley's avatar Adam Langley

6a/6l: add IMUL3Q and SHLDL

Although Intel considers the three-argument form of IMUL to be a
variant of IMUL, I couldn't make 6l able to differentiate it without
huge changes, so I called it IMUL3.

R=rsc
CC=golang-dev
https://golang.org/cl/5686055
parent ac4055b2
...@@ -396,6 +396,7 @@ struct ...@@ -396,6 +396,7 @@ struct
"IMULB", LTYPEI, AIMULB, "IMULB", LTYPEI, AIMULB,
"IMULL", LTYPEI, AIMULL, "IMULL", LTYPEI, AIMULL,
"IMULQ", LTYPEI, AIMULQ, "IMULQ", LTYPEI, AIMULQ,
"IMUL3Q", LTYPEX, AIMUL3Q,
"IMULW", LTYPEI, AIMULW, "IMULW", LTYPEI, AIMULW,
"INB", LTYPE0, AINB, "INB", LTYPE0, AINB,
"INL", LTYPE0, AINL, "INL", LTYPE0, AINL,
......
...@@ -735,6 +735,7 @@ enum as ...@@ -735,6 +735,7 @@ enum as
AMODE, AMODE,
ACRC32B, ACRC32B,
ACRC32Q, ACRC32Q,
AIMUL3Q,
ALAST ALAST
}; };
......
...@@ -267,6 +267,11 @@ uchar yimul[] = ...@@ -267,6 +267,11 @@ uchar yimul[] =
Yml, Yrl, Zm_r, 2, Yml, Yrl, Zm_r, 2,
0 0
}; };
uchar yimul3[] =
{
Yml, Yrl, Zibm_r, 1,
0
};
uchar ybyte[] = uchar ybyte[] =
{ {
Yi64, Ynone, Zbyte, 1, Yi64, Ynone, Zbyte, 1,
...@@ -772,6 +777,7 @@ Optab optab[] = ...@@ -772,6 +777,7 @@ Optab optab[] =
{ AIMULL, yimul, Px, 0xf7,(05),0x6b,0x69,Pm,0xaf }, { AIMULL, yimul, Px, 0xf7,(05),0x6b,0x69,Pm,0xaf },
{ AIMULQ, yimul, Pw, 0xf7,(05),0x6b,0x69,Pm,0xaf }, { AIMULQ, yimul, Pw, 0xf7,(05),0x6b,0x69,Pm,0xaf },
{ AIMULW, yimul, Pe, 0xf7,(05),0x6b,0x69,Pm,0xaf }, { AIMULW, yimul, Pe, 0xf7,(05),0x6b,0x69,Pm,0xaf },
{ AIMUL3Q, yimul3, Pw, 0x6b },
{ AINB, yin, Pb, 0xe4,0xec }, { AINB, yin, Pb, 0xe4,0xec },
{ AINCB, yincb, Pb, 0xfe,(00) }, { AINCB, yincb, Pb, 0xfe,(00) },
{ AINCL, yincl, Px, 0xff,(00) }, { AINCL, yincl, Px, 0xff,(00) },
......
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