]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/6a, cmd/6l: add PCLMULQDQ instruction.
authorAdam Langley <agl@golang.org>
Fri, 21 Jun 2013 19:17:13 +0000 (15:17 -0400)
committerAdam Langley <agl@golang.org>
Fri, 21 Jun 2013 19:17:13 +0000 (15:17 -0400)
This Intel instruction implements multiplication in binary fields.

R=golang-dev, minux.ma, dave, rsc
CC=golang-dev
https://golang.org/cl/10428043

src/cmd/6a/lex.c
src/cmd/6l/6.out.h
src/cmd/6l/optab.c

index c969e98e5dbbb215390d58306cf710b92bcda21b..89143e78941e12ca300ce02380eefb4ae3cb9bfe 100644 (file)
@@ -1019,6 +1019,7 @@ struct
        "AESKEYGENASSIST", LTYPEX, AAESKEYGENASSIST,
        "PSHUFD",       LTYPEX, APSHUFD,
        "USEFIELD",     LTYPEN, AUSEFIELD,
+       "PCLMULQDQ",    LTYPEX, APCLMULQDQ,
 
        0
 };
index e0aeafa94f45b0d44e380f71b50f94e1688218cd..c4be74f135b73097ef6dbb952ac81f8a536ab9c9 100644 (file)
@@ -766,6 +766,8 @@ enum        as
        ANPTRS,
        APTRS,
 
+       APCLMULQDQ,
+
        ALAST
 };
 
index 356910734a100ddfba22fdd789013d0768e30458..5080dd7e90fd2572fec93bb0ec80df248ae2d6ba 100644 (file)
@@ -1344,6 +1344,8 @@ Optab optab[] =
        { ANPTRS },
        { APTRS },
 
+       { APCLMULQDQ,   yxshuf, Pq, 0x3a,0x44,0 },
+
        { AEND },
        0
 };