FROM:jiaxun yang

Hi Stéphane.



MIPS do have a way to access count register from user space.

Unfortunately there is no GCC intrinsic function for it, you may try
following inline assembly.



static inline unsigned long get_count() {

    unsigned long count;

    asm volatile ("rdhwr %[rt], $2" : [rt] "=d" (count));

    return count;

}



return Val_long (get_count());



Thanks.



- Jiaxun

Mathieu Malaterre <ma...@debian.org> 于 2021年12月3日周五 下午5:34写道:

> Salut Stéphane,
>
> On Fri, Dec 3, 2021 at 10:19 AM Stéphane Glondu <glo...@debian.org> wrote:
> >
> > Dear MIPS porters,
> >
> > I am debugging ocaml-mirage-crypto build on mipsel.
> >
> > It uses the following code:
> >
> > > #if defined (__i386__) || defined (__x86_64__)
> > >   return Val_long (__rdtsc ());
> > > #elif defined (__arm__) || defined (__aarch64__)
> > >   return Val_long (read_virtual_count ());
> > > #elif defined(__powerpc64__)
> > >   return Val_long (read_cycle_counter ());
> > > #elif defined(__riscv) && (64 == __riscv_xlen)
> > >   return Val_long (rdcycle64 ());
> > > #elif defined (__s390x__)
> > >   return Val_long (getticks ());
> > > #else
> > > #error ("No known cycle-counting instruction.")
> > > #endif
> >
> > I have trouble finding a suitable implementation for this on mipsel.
> > Would you have a hint?
>
> All I could find is this code (untested):
>
>
> https://salsa.debian.org/science-team/nfft/-/blob/debian/master/include/cycle.h#L485-507
>
>

Reply via email to