Changeset 5006
- Timestamp:
- Aug 22, 2006, 1:02:04 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/lisp-kernel/x86-asmutils64.s (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/lisp-kernel/x86-asmutils64.s
r4980 r5006 102 102 103 103 104 /* Logand the value in *rdi with the value in rsi (presumably a bitmask with exactly 1 */ 105 /* bit set.) Return the value now in *rdi (for some value of "now" */ 106 107 _exportfn(C(atomic_and)) 108 0: __(movq (%rdi), %rax) 109 __(movq %rax,%rcx) 110 __(and %rsi,%rcx) 111 __(lock) 112 __(cmpxchg %rcx,(%rdi)) 113 __(jnz 0b) 114 __(movq %rcx,%rax) 115 __(ret) 116 _endfn 104 117 105 118 119 __ifdef([DARWIN]) 120 _exportfn(C(pseudo_sigreturn)) 121 __(ud2b) 122 __(jmp C(pseudo_sigreturn)) 123 _endfn 124 __endif 106 125 107 126 /* int cpuid (int code, int *pebx, int *pecx, int *pedx) */ … … 146 165 __ifdef([DARWIN_GS_HACK]) 147 166 /* Check (in and ugly, non-portale way) to see if %gs is addressing 148 threads data. If it was, return 0; otherwise, assume that it's167 pthreads data. If it was, return 0; otherwise, assume that it's 149 168 addressing a lisp tcr and set %gs to point to the tcr's tcr.osid, 150 169 then return 1. */
Note:
See TracChangeset
for help on using the changeset viewer.
