1f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project; x86 timer in NASM
2f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project;
3f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project; Tom St Denis, tomstdenis@iahu.ca
4f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project[bits 32]
5f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project[section .data]
6f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projecttime dd 0, 0
7f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
8f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project[section .text]
9f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project
10f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project%ifdef USE_ELF
11f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project[global t_start]
12f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projectt_start:
13f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project%else
14f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project[global _t_start]
15f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project_t_start:
16f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project%endif
17f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   push edx
18f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   push eax
19f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   rdtsc
20f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   mov [time+0],edx
21f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   mov [time+4],eax
22f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   pop eax
23f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   pop edx
24f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   ret
25f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   
26f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project%ifdef USE_ELF
27f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project[global t_read]
28f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Projectt_read:
29f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project%else
30f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project[global _t_read]
31f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project_t_read:
32f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project%endif
33f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   rdtsc
34f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   sub eax,[time+4]
35f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   sbb edx,[time+0]
36f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project   ret
37f7fc46c63fdc8f39234fea409b8dbe116d73ebf8The Android Open Source Project