toolkit/crashreporter/google-breakpad/src/processor/stackwalker_selftest_sol.s

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

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.

michael@0 1 /* Copyright (c) 2007, Google Inc.
michael@0 2 * All rights reserved.
michael@0 3 *
michael@0 4 * Redistribution and use in source and binary forms, with or without
michael@0 5 * modification, are permitted provided that the following conditions are
michael@0 6 * met:
michael@0 7 *
michael@0 8 * * Redistributions of source code must retain the above copyright
michael@0 9 * notice, this list of conditions and the following disclaimer.
michael@0 10 * * Redistributions in binary form must reproduce the above
michael@0 11 * copyright notice, this list of conditions and the following disclaimer
michael@0 12 * in the documentation and/or other materials provided with the
michael@0 13 * distribution.
michael@0 14 * * Neither the name of Google Inc. nor the names of its
michael@0 15 * contributors may be used to endorse or promote products derived from
michael@0 16 * this software without specific prior written permission.
michael@0 17 *
michael@0 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
michael@0 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
michael@0 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
michael@0 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
michael@0 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@0 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
michael@0 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
michael@0 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
michael@0 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
michael@0 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
michael@0 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
michael@0 29 */
michael@0 30
michael@0 31 /* stackwalker_selftest_sol.s
michael@0 32 * On Solaris, the recommeded compiler is CC, so we can not use gcc inline
michael@0 33 * asm, use this method instead.
michael@0 34 *
michael@0 35 * How to compile: as -P -L -D_ASM -D_STDC -K PIC -o \
michael@0 36 * src/processor/stackwalker_selftest_sol.o \
michael@0 37 * src/processor/stackwalker_selftest_sol.s
michael@0 38 *
michael@0 39 * Author: Michael Shang
michael@0 40 */
michael@0 41
michael@0 42 #include <sys/asm_linkage.h>
michael@0 43
michael@0 44 #if defined(__i386)
michael@0 45
michael@0 46
michael@0 47 ENTRY(GetEBP)
michael@0 48 pushl %ebp
michael@0 49 movl %esp,%ebp
michael@0 50 subl $0x00000004,%esp
michael@0 51 movl 0x00000000(%ebp),%eax
michael@0 52 movl %eax,0xfffffffc(%ebp)
michael@0 53 movl 0xfffffffc(%ebp),%eax
michael@0 54 leave
michael@0 55 ret
michael@0 56 SET_SIZE(GetEBP)
michael@0 57
michael@0 58 ENTRY(GetEIP)
michael@0 59 pushl %ebp
michael@0 60 movl %esp,%ebp
michael@0 61 subl $0x00000004,%esp
michael@0 62 movl 0x00000004(%ebp),%eax
michael@0 63 movl %eax,0xfffffffc(%ebp)
michael@0 64 movl 0xfffffffc(%ebp),%eax
michael@0 65 leave
michael@0 66 ret
michael@0 67 SET_SIZE(GetEIP)
michael@0 68
michael@0 69 ENTRY(GetESP)
michael@0 70 pushl %ebp
michael@0 71 movl %esp,%ebp
michael@0 72 subl $0x00000004,%esp
michael@0 73 movl %ebp,%eax
michael@0 74 movl %eax,0xfffffffc(%ebp)
michael@0 75 movl 0xfffffffc(%ebp),%eax
michael@0 76 addl $0x00000008,%eax
michael@0 77 leave
michael@0 78 ret
michael@0 79 SET_SIZE(GetESP)
michael@0 80
michael@0 81
michael@0 82 #elif defined(__sparc)
michael@0 83
michael@0 84
michael@0 85 ENTRY(GetPC)
michael@0 86 save %sp, -120, %sp
michael@0 87 mov %i7, %i4
michael@0 88 inccc 8, %i4
michael@0 89 mov %i4, %i0
michael@0 90 ret
michael@0 91 restore
michael@0 92 SET_SIZE(GetPC)
michael@0 93
michael@0 94 ENTRY(GetSP)
michael@0 95 save %sp, -120, %sp
michael@0 96 mov %fp, %i4
michael@0 97 mov %i4, %i0
michael@0 98 ret
michael@0 99 restore
michael@0 100 SET_SIZE(GetSP)
michael@0 101
michael@0 102 ENTRY(GetFP)
michael@0 103 save %sp, -120, %sp
michael@0 104 ld [%fp + 56], %g1
michael@0 105 mov %g1, %i0
michael@0 106 ret
michael@0 107 restore
michael@0 108 SET_SIZE(GetFP)
michael@0 109
michael@0 110
michael@0 111 #endif // __i386 || __sparc

mercurial