40 |
#if NCPUS == 1 |
#if NCPUS == 1 |
41 |
#define CPU_NUMBER(reg) movl $0, reg |
#define CPU_NUMBER(reg) movl $0, reg |
42 |
#else |
#else |
43 |
#define CPU_NUMBER(reg) movl apic_virtual_address, reg ;\ |
#define CPU_NUMBER(reg) movl ncpus, reg ;\ |
44 |
|
cmp $1, reg ;\ |
45 |
|
jne 9f ;\ |
46 |
|
movl $0, reg ;\ |
47 |
|
jmp 8f ;\ |
48 |
|
9: movl apic_virtual_address, reg ;\ |
49 |
movl 0x20(reg), reg ;\ |
movl 0x20(reg), reg ;\ |
50 |
shr $24, reg ;\ |
shr $24, reg ;\ |
51 |
movl apic_id_to_cpu_map(, reg, 4), reg |
movl apic_id_to_cpu_map(, reg, 4), reg ;\ |
52 |
|
8: |
53 |
#endif |
#endif |
54 |
|
|
55 |
#endif /* i386-asm.h */ |
#endif /* i386-asm.h */ |