On Fri, Oct 11, 2019 at 7:21 PM René van Dorst <opensource@xxxxxxxxxx> wrote: > Quoting Andy Polyakov <appro@xxxxxxxxxxxxxx>: > > On 10/8/19 1:38 PM, Andy Polyakov wrote: > > As an example, MIPS 1004K manual discusses that that there are two > > options for multiplier for this core, proper and poor-man's. Proper > > multiplier unit can issue multiplication or multiplication-n-add each > > cycle, with multiplication latency apparently being 4. Poor-man's unit > > on the other hand can issue multiplication each 32nd[!] cycle with > > corresponding latency. This means that core with poor-man's unit would > > perform ~13% worse than it could have been. Updated module does use > > multiply-by-1-n-add, so this note is effectively for reference in case > > "poor man" wonders. > > Thanks for this information. > I wonder how many devices do exist with the "poor man" version. I'm fairly sure the MT7621 is the only 1004k supported by the mainline Linux kernel today, and likely the only one that will ever run this code. Ralink/Mediatek, Lantiq/Intel and Ikanos/Qualcomm had some other SoCs based on the related 34k core with an optional iterative multiplier, out of those only Lantiq ARX100/VRX200 has support in Linux or OpenWRT. Everyone else (in the wireless and router space at least) seems to have skipped the 34k/1004k and only used 24k or 74k/1074k based chips that are the most common and have a fast multiplier, or some custom mips core. Arnd