#include <stdio.h>
#include <stdlib.h>
#include "system.h"
#include "alt_types.h"
#include <time.h>
#include <unistd.h>
#include <sys/alt_timestamp.h>


// définition des instructions "ajoutées".
#define I1(a,b) __builtin_custom_inii(0,a,b) 
#define I2(a,b) __builtin_custom_inii(1,a,b) 
#define I3(a,b) __builtin_custom_inii(2,a,b)
#define I4(a,b) __builtin_custom_inii(3,a,b)
// etc...  remplacer I1, I2, I3, I4... par les noms des instructions à exécuter.

typedef union s32{
  unsigned char char_word[size][size];
  int int_word[size][size/4];
} s32 ;

//variables pour mesure de temps.
alt_u32 num_ticks ;
alt_u32 time1, time2, timer_overhead;



int main()
{
  

//Initialisation du timer
  if(alt_timestamp_start() < 0)
  {
    printf("Timer init failed \n");
    exit(0);
  }
// Nombre de cycles d'horloge liés à la prise de temps

  time1 = alt_timestamp();
  time2 = alt_timestamp();
  timer_overhead = time2 - time1;
  
    for (k=0; k<5; k++)
  {
    time1 = alt_timestamp();
    
   //mesure de temps sur le programme (le programme est exécuté 5 fois)
    
    time2 = alt_timestamp();
num_ticks = time2 - time1 - timer_overhead;
}

  
 return 0;
} 

  

 


