Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
1 .section ".text",#alloc,#execinstr
2 .align 8
3 .skip 16
5 ! int _STLP_atomic_exchange (void *pvalue, int value)
6 !
8 .type _STLP_atomic_exchange,#function
9 .global _STLP_atomic_exchange
10 .align 8
12 _STLP_atomic_exchange:
13 1:
14 ldx [%o0], %o2 ! Set the current value
15 mov %o1, %o3 ! Set the new value
16 casx [%o0], %o2, %o3 ! Do the compare and swap
17 cmp %o2, %o3 ! Check whether successful
18 bne 1b ! Retry upon failure
19 membar #LoadLoad | #LoadStore ! Ensure the cas finishes before
20 ! returning
21 retl ! return
22 mov %o2, %o0 ! Set the new value
23 .size _STLP_atomic_exchange,(.-_STLP_atomic_exchange)
26 ! int _STLP_atomic_increment (void *pvalue)
28 .type _STLP_atomic_increment,#function
29 .global _STLP_atomic_increment
30 .align 8
31 _STLP_atomic_increment:
32 0:
33 ldx [%o0], %o2 ! set the current
34 addx %o2, 0x1, %o3 ! Increment and store current
35 casx [%o0], %o2, %o3 ! Do the compare and swap
36 cmp %o3, %o2 ! Check whether successful
37 bne 0b
38 membar #LoadLoad | #LoadStore ! Ensure the cas finishes before
39 ! returning
40 retl ! return
41 mov %o1, %o0 ! Set the return value
43 .size _STLP_atomic_increment,(.-_STLP_atomic_increment)
46 ! /* int _STLP_atomic_decrement (void *pvalue) */
47 .type _STLP_atomic_decrement,#function
48 .global _STLP_atomic_decrement
49 .align 8
51 _STLP_atomic_decrement:
52 0:
53 ldx [%o0], %o2 ! set the current
54 subx %o2, 0x1, %o3 ! decrement and store current
55 casx [%o0], %o2, %o3 ! Do the compare and swap
56 cmp %o3, %o2 ! Check whether successful
57 bne 0b
58 membar #LoadLoad | #LoadStore ! Ensure the cas finishes before
59 ! returning
60 retl ! return
61 nop
62 .size _STLP_atomic_decrement,(.-_STLP_atomic_decrement)