gforth
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gforth] Performance anomality with dynamic superinstructions on MIP


From: David Kuehling
Subject: Re: [gforth] Performance anomality with dynamic superinstructions on MIPSel
Date: Sun, 23 Mar 2014 18:38:58 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux)

Replying to myself, quick update (before I have to shutdown my computer
for today):

The instruction in question is 'rdhwr v1,$29' which is mips32r2, i.e.
not supported on Loongson2f.  GCC outputs it via a sequence like:

        .set    push
        .set    mips32r2        
        rdhwr   $3,$29
        .set    pop

I guess on MIPS the GCC runtime nowadays uses model specific register
$29 (which is not CPU reg $29 !) for addressing thread local storage.
To support older mipses this is implemented in kernel via an invalid
opcode interrupt emulation.  I.e. very slow.  How can we prevent writes
to thread local storage from creeping into goto*?

David
-- 
GnuPG public key: http://dvdkhlng.users.sourceforge.net/dk2.gpg
Fingerprint: B63B 6AF2 4EEB F033 46F7  7F1D 935E 6F08 E457 205F

Attachment: pgpora67YU2Ve.pgp
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]