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

C Discussion :

problème sur readTSC


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Par défaut problème sur readTSC
    bonjour j'ai un problème sur RDTSC
    je prend n'importe quel code sur le net mais aucun ne marche
    je sais que je travaille en intel et je veux que mon application marche sur n'importe quel intel.
    Je suis sur un 32 bits mais je veux aussi travaillé en 64 bits

    voici le code que j'ai trouvé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    double RDTSC(void)
    {
    #ifdef linux
      unsigned long long x;
      __asm__ volatile  (".byte 0x0f, 0x31" : "=A"(x));
      return (double)x;
    #else
      unsigned long a, b;
      double x;
     
    #ifdef _MSC_VER
      // Code pour Visual C++
      __asm
      {
        RDTSC
    #else
      // Code pour Borland et autres
      asm
      {
        db 0x0F,0x31 // instruction RDTSC
    #endif
        mov [a],eax
        mov [b],edx
      }
      x  = b;                       //le problème
      x *= 4294967296;
      x += a;
      return x;
    #endif
    }
    le compilateur me répond `b' undeclared here (not in a function)
    et integer constant is too large for "long" type

  2. #2
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Salut,

    le compilateur me répond `b' undeclared here (not in a function)
    Normal la presence de ta variable locale depend de la presence d'une constante symbolique "linux"...
    et integer constant is too large for "long" type
    Il s'agit de ceci
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x *= 4294967296.0; /* puisque le resultat est mis dans un double */
    ou encore ceci (à condition que le compilateur supporte les "long long")
    ou encore

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 106
    Par défaut
    ah ben voilà le problème
    le problème c'est que je suis sous windows et je trouve rien qui tourne sous windows à part ca mais ca déconne vu que pour l'instant j'utilise du 32 bits.
    Par contre je vais changé de machine surement du 64 bits.
    Le mieux c'est que je fasse quelques chose qui tourne pour les 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #ifdef __i386
    extern __inline__ uint64_t rdtsc() {
      uint64_t x;
      __asm__ volatile ("rdtsc" : "=A" (x));
      return x;
    }
    #elif __amd64
    extern __inline__ uint64_t rdtsc() {
      uint64_t a, d;
      __asm__ volatile ("rdtsc" : "=a" (a), "=d" (d));
      return (d<<32) | a;
    }
    #endif

Discussions similaires

  1. Problème sur la recherche fulltext en v4 !
    Par poppa dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/05/2004, 23h06
  2. Problème sur fiche MDIchild
    Par nivet dans le forum Composants VCL
    Réponses: 6
    Dernier message: 23/01/2004, 08h07
  3. Problème sur GetPrivateProfileString ???
    Par Bordelique dans le forum Langage
    Réponses: 7
    Dernier message: 25/06/2003, 22h15
  4. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45
  5. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17

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