Changeset c8e99bb in mainline
- Timestamp:
- 2010-05-30T21:00:18Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- ada559c
- Parents:
- 313b617
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/include/barrier.h
r313b617 rc8e99bb 36 36 #define KERN_sparc64_BARRIER_H_ 37 37 38 #ifdef KERNEL 39 #include <typedefs.h> 40 #else 41 #include <stdint.h> 42 #endif 43 38 44 /* 39 45 * Our critical section barriers are prepared for the weakest RMO memory model. … … 64 70 static inline void flush_pipeline(void) 65 71 { 72 uint64_t pc; 73 66 74 /* 67 75 * The FLUSH instruction takes address parameter. … … 70 78 * The entire kernel text is mapped by a locked ITLB and 71 79 * DTLB entries. Therefore, when this function is called, 72 * the % o7register will always be in the range mapped by80 * the %pc register will always be in the range mapped by 73 81 * DTLB. 74 82 */ 75 83 76 asm volatile ("flush %o7\n"); 84 asm volatile ( 85 "rd %%pc, %0\n" 86 "flush %0\n" 87 : "=&r" (pc) 88 ); 77 89 } 78 90
Note:
See TracChangeset
for help on using the changeset viewer.