equal
deleted
inserted
replaced
39 |
39 |
40 .globl _Atomic_cmpxchg_long |
40 .globl _Atomic_cmpxchg_long |
41 .globl _Atomic_move_long |
41 .globl _Atomic_move_long |
42 |
42 |
43 .text |
43 .text |
44 |
|
45 .globl SafeFetch32, Fetch32PFI, Fetch32Resume |
|
46 .globl SafeFetchN |
|
47 ## TODO: avoid exposing Fetch32PFI and Fetch32Resume. |
|
48 ## Instead, the signal handler would call a new SafeFetchTriage(FaultingEIP) |
|
49 ## routine to vet the address. If the address is the faulting LD then |
|
50 ## SafeFetchTriage() would return the resume-at EIP, otherwise null. |
|
51 .type SafeFetch32,@function |
|
52 .p2align 4,,15 |
|
53 SafeFetch32: |
|
54 SafeFetchN: |
|
55 movl 0x8(%esp), %eax |
|
56 movl 0x4(%esp), %ecx |
|
57 Fetch32PFI: |
|
58 movl (%ecx), %eax |
|
59 Fetch32Resume: |
|
60 ret |
|
61 |
|
62 |
44 |
63 .globl SpinPause |
45 .globl SpinPause |
64 .type SpinPause,@function |
46 .type SpinPause,@function |
65 .p2align 4,,15 |
47 .p2align 4,,15 |
66 SpinPause: |
48 SpinPause: |