They were rejected by NaCl due to AES instructions and
accesses to %gs:0x8, caused by wrong tlsoffset value.
LGTM=iant
R=rsc, dave, iant
CC=golang-codereviews
https://golang.org/cl/
76050044
*/
ctxt->tlsoffset = -2*ctxt->arch->ptrsize;
break;
-
+
case Hnacl:
- ctxt->tlsoffset = 0;
+ switch(ctxt->arch->thechar) {
+ default:
+ sysfatal("unknown thread-local storage offset for nacl/%s", ctxt->arch->name);
+ case '6':
+ ctxt->tlsoffset = 0;
+ break;
+ case '8':
+ ctxt->tlsoffset = -8;
+ break;
+ }
break;
case Hdarwin:
{
byte *b;
uintptr hash;
- if(use_aeshash) {
+ if(!NaCl && use_aeshash) {
runtime·aeshash(h, s, a);
return;
}
void
runtime·hashinit(void)
{
+ if(NaCl)
+ return;
+
// Install aes hash algorithm if we have the instructions we need
if((runtime·cpuid_ecx & (1 << 25)) != 0 && // aes (aesenc)
(runtime·cpuid_ecx & (1 << 9)) != 0 && // sse3 (pshufb)