Changeset f24d300 in mainline for kernel/arch/amd64/src/cpu/cpu.c
- Timestamp:
- 2009-03-03T15:52:55Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e762b43
- Parents:
- add04f7
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/src/cpu/cpu.c
radd04f7 rf24d300 78 78 { 79 79 asm volatile ( 80 "movq %%cr0, %%rax;" 81 "btsq $1, %%rax;" /* cr0.mp */ 82 "btrq $2, %%rax;" /* cr0.em */ 83 "movq %%rax, %%cr0;" 84 85 "movq %%cr4, %%rax;" 86 "bts $9, %%rax;" /* cr4.osfxsr */ 87 "movq %%rax, %%cr4;" 88 : 89 : 90 :"%rax" 91 ); 80 "movq %%cr0, %%rax\n" 81 "btsq $1, %%rax\n" /* cr0.mp */ 82 "btrq $2, %%rax\n" /* cr0.em */ 83 "movq %%rax, %%cr0\n" 84 85 "movq %%cr4, %%rax\n" 86 "bts $9, %%rax\n" /* cr4.osfxsr */ 87 "movq %%rax, %%cr4\n" 88 ::: "%rax" 89 ); 92 90 } 93 91 94 /** Set the TS flag to 1. 92 /** Set the TS flag to 1. 95 93 * 96 94 * If a thread accesses coprocessor, exception is run, which … … 100 98 void fpu_disable(void) 101 99 { 102 asm volatile ( 103 "mov %%cr0,%%rax;" 104 "bts $3,%%rax;" 105 "mov %%rax,%%cr0;" 106 : 107 : 108 :"%rax" 109 ); 100 asm volatile ( 101 "mov %%cr0, %%rax\n" 102 "bts $3, %%rax\n" 103 "mov %%rax, %%cr0\n" 104 ::: "%rax" 105 ); 110 106 } 111 107 112 108 void fpu_enable(void) 113 109 { 114 asm volatile ( 115 "mov %%cr0,%%rax;" 116 "btr $3,%%rax;" 117 "mov %%rax,%%cr0;" 118 : 119 : 120 :"%rax" 121 ); 110 asm volatile ( 111 "mov %%cr0, %%rax\n" 112 "btr $3, %%rax\n" 113 "mov %%rax, %%cr0\n" 114 ::: "%rax" 115 ); 122 116 } 123 117
Note:
See TracChangeset
for help on using the changeset viewer.