IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

Param�tre de fonction : forcer l'usage d'un registre


Sujet :

Visual C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Inscrit en
    Avril 2005
    Messages
    1 110
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par d�faut Param�tre de fonction : forcer l'usage d'un registre
    Bonjour,

    Voici un exemple de fonction ultra simple mais bien pratique:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    inline unsigned byte_swap(unsigned u)
    {
    __asm
    {
    mov eax,[u]
    bswap eax
    }
    }
    Cependant je constate que le param�tre u est syt�matiquement plac� sur la pile (quelques soient les options d'optimization choisies) alors que la fonction est inlin�, ce qui est idiot AMHA.
    Peut-on forcer un passage par registre ?
    Exemple (surement faux):
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    inline unsigned byte_swap(register eax unsigned u)
    {
    __asm
    {
    bswap eax
    }
    }
    Merci.

  2. #2
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    D�tails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par d�faut
    J'ai l'impression que l'intrinsic g�n�re du meilleur code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    unsigned long byte_swap(unsigned long x) 
    {
        return _byteswap_ulong(x);
    }

  3. #3
    Membre �clair�
    Inscrit en
    Avril 2005
    Messages
    1 110
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par d�faut
    Pas faux ce que tu dis, mais c'�tait un exemple.
    La question reste, comment faire pour obtenir un comportement semblable aux intrinsics ?

  4. #4
    Membre �clair�
    Inscrit en
    Avril 2005
    Messages
    1 110
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 110
    Par d�faut
    Bon, j'ai rien trouv�. Ce n'est peut-�tre pas possible de "faire" des intrinsics. Tant pis.

    A titre de curiosit�, ce petit code compile
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    unsigned byte_swap1(register unsigned eax)
    {
    	__asm
    	{
    		bswap eax
    	}
    }
    mais ne donne pas du tout l'effet escompt�

Discussions similaires

  1. R�ponses: 10
    Dernier message: 04/01/2006, 16h57
  2. liste �num�r�e de const. perso comme param�tre de fonction
    Par batou22003 dans le forum VB 6 et ant�rieur
    R�ponses: 8
    Dernier message: 13/12/2005, 20h37
  3. Param�tres de fonction : pointeurs ou valeurs ?
    Par Xandar dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 30/11/2005, 16h50
  4. Retrouver les valeurs des param�tres des fonctions d'une DLL
    Par Bernard Martineau dans le forum Langage
    R�ponses: 6
    Dernier message: 08/11/2005, 10h42
  5. Param�tre de fonction
    Par Reynald dans le forum D�buter
    R�ponses: 6
    Dernier message: 05/01/2005, 21h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo