]> git.saurik.com Git - apple/xnu.git/blame - tools/tests/jitter/cpu_number.s
xnu-2422.1.72.tar.gz
[apple/xnu.git] / tools / tests / jitter / cpu_number.s
CommitLineData
6d2010ae
A
1.text
2/*
3 * Taken from Libc
4 */
5.globl _cpu_number
6_cpu_number:
7#if defined(__x86_64__)
8 push %rbp
9 mov %rsp,%rbp
10 sub $16,%rsp // space to read IDTR
11
12 sidt (%rsp) // store limit:base on stack
39236c6e 13 movw (%rsp), %ax // get limit
6d2010ae
A
14 and $0xfff, %rax // mask off lower 12 bits to return
15
16 mov %rbp,%rsp
17 pop %rbp
18 ret
19#elif defined(__i386__)
20 push %ebp
21 mov %esp,%ebp
22 sub $8, %esp // space to read IDTR
23
24 sidt (%esp) // store limit:base on stack
25 movw (%esp), %ax // get limit
26 and $0xfff, %eax // mask off lower 12 bits to return
27
28 mov %ebp,%esp
29 pop %ebp
30 ret
31#else
32#error Unsupported architecture
33#endif