lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 10 Aug 2018 21:10:04 -0700
From:   Richard Henderson <rth@...ddle.net>
To:     Al Viro <viro@...IV.linux.org.uk>
Cc:     Firoz Khan <firoz.khan@...aro.org>, linux-alpha@...r.kernel.org,
        ink@...assic.park.msu.ru, mattst88@...il.com,
        y2038@...ts.linaro.org, linux-kernel@...r.kernel.org,
        linux-arch@...r.kernel.org, arnd@...db.de, deepa.kernel@...il.com
Subject: Re: [PATCH 3/6] alpha: Unify the not-implemented system call entry
 name

On 08/10/2018 07:45 PM, Al Viro wrote:
> BTW, seeing that it's your code - why was unop used in
> alpha_ni_syscall?  I don't remember the rules re pipeline
> stalls; is it that some earlier variants prefer unop to
> nop in such places?  It's not that microoptimizing that
> one makes any difference, but just out of curiosity -
> would something like
> 	lda     $0, -ENOSYS
> 	stq     $sp, 0($sp)	/* sp != 0 */
> 	ret
> do just as well there?

Oh that.  Well, unop is a "load" and pairs with everything
on all cpus, where nop is an integer and doesn't always
pair.  So I got into the habit of using unop for everything.

The extra nop was so that lda + unop // stq + ret paired up
in in two cycles as opposed to lda /stall/ stq // ret in
three cycles on ev4+ev5.  ev6 didn't care.  FWIW.


r~

Powered by blists - more mailing lists