diff options
author | Keith Randall <khr@golang.org> | 2013-03-07 12:54:00 -0800 |
---|---|---|
committer | Keith Randall <khr@golang.org> | 2013-03-07 12:54:00 -0800 |
commit | 0bf122c96d9615157bae96cb98ccc8e4001e21bf (patch) | |
tree | b01b003490105de86c172982b79a95916387687c /src/cmd/8l/span.c | |
parent | ca9c7b1d65cd01a99e313a8df8fc2d5a744585d0 (diff) | |
download | go-0bf122c96d9615157bae96cb98ccc8e4001e21bf.tar.gz |
cmd/6a, cmd/8a, cmd/6l, cmd/8l: add AES instructions
Instructions for use in AES hashing. See CL#7543043
R=rsc
CC=golang-dev
https://codereview.appspot.com/7548043
Diffstat (limited to 'src/cmd/8l/span.c')
-rw-r--r-- | src/cmd/8l/span.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/cmd/8l/span.c b/src/cmd/8l/span.c index b828d8645..0678fa8f2 100644 --- a/src/cmd/8l/span.c +++ b/src/cmd/8l/span.c @@ -1003,11 +1003,23 @@ found: *andptr++ = op; break; + case Zlitm_r: + for(; op = o->op[z]; z++) + *andptr++ = op; + asmand(&p->from, reg[p->to.type]); + break; + case Zm_r: *andptr++ = op; asmand(&p->from, reg[p->to.type]); break; + case Zm2_r: + *andptr++ = op; + *andptr++ = o->op[z+1]; + asmand(&p->from, reg[p->to.type]); + break; + case Zm_r_xm: mediaop(o, op, t[3], z); asmand(&p->from, reg[p->to.type]); @@ -1019,6 +1031,13 @@ found: *andptr++ = p->to.offset; break; + case Zibm_r: + while ((op = o->op[z++]) != 0) + *andptr++ = op; + asmand(&p->from, reg[p->to.type]); + *andptr++ = p->to.offset; + break; + case Zaut_r: *andptr++ = 0x8d; /* leal */ if(p->from.type != D_ADDR) |