Commit 0f6f2cda authored by Bill Wendling's avatar Bill Wendling
Browse files

Merging r-196802:

------------------------------------------------------------------------
r196802 | chandlerc | 2013-12-09 11:25:51 -0800 (Mon, 09 Dec 2013) | 11 lines

Revert three patches which were committed without explicit contribution
by their authors.

This may break builds where others added code relying on these patches,
but please *do not* revert this commit. Instead, we will prepare patches
which fix the failures.

Reverts the following commits:
r168306: "[asan] support x32 mode in the fast stack unwinder. Patch by H.J. Lu"
r168356: "[asan] more support for powerpc, patch by Peter Bergner"
r196489: "[sanitizer] fix the ppc32 build (patch by Jakub Jelinek)"
------------------------------------------------------------------------

llvm-svn: 197360
parent a0cdb61c
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -74,6 +74,13 @@ void GetPcSpBp(void *context, uptr *pc, uptr *sp, uptr *bp) {
  *pc = ucontext->uc_mcontext.gregs[REG_EIP];
  *bp = ucontext->uc_mcontext.gregs[REG_EBP];
  *sp = ucontext->uc_mcontext.gregs[REG_ESP];
# elif defined(__powerpc__) || defined(__powerpc64__)
  ucontext_t *ucontext = (ucontext_t*)context;
  *pc = ucontext->uc_mcontext.regs->nip;
  *sp = ucontext->uc_mcontext.regs->gpr[PT_R1];
  // The powerpc{,64}-linux ABIs do not specify r31 as the frame
  // pointer, but GCC always uses r31 when we need a frame pointer.
  *bp = ucontext->uc_mcontext.regs->gpr[PT_R31];
# elif defined(__sparc__)
  ucontext_t *ucontext = (ucontext_t*)context;
  uptr *stk_ptr;
+4 −1
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@ static const u64 kDefaultShadowScale = 3;
static const u64 kDefaultShadowOffset32 = 1ULL << 29;
static const u64 kDefaultShadowOffset64 = 1ULL << 44;
static const u64 kDefaultShort64bitShadowOffset = 0x7FFF8000;  // < 2G.
static const u64 kPPC64_ShadowOffset64 = 1ULL << 41;
static const u64 kMIPS32_ShadowOffset32 = 0x0aaa8000;

#if ASAN_FLEXIBLE_MAPPING_AND_OFFSET == 1
@@ -80,7 +81,9 @@ extern SANITIZER_INTERFACE_ATTRIBUTE uptr __asan_mapping_offset;
#     define SHADOW_OFFSET kDefaultShadowOffset32
#   endif
#  else
#   if SANITIZER_MAC
#   if defined(__powerpc64__)
#    define SHADOW_OFFSET kPPC64_ShadowOffset64
#   elif SANITIZER_MAC
#    define SHADOW_OFFSET kDefaultShadowOffset64
#   else
#    define SHADOW_OFFSET kDefaultShort64bitShadowOffset
+4 −0
Original line number Diff line number Diff line
@@ -27,7 +27,11 @@ struct StackTrace;
const uptr kWordSize = SANITIZER_WORDSIZE / 8;
const uptr kWordSizeInBits = 8 * kWordSize;

#if defined(__powerpc__) || defined(__powerpc64__)
const uptr kCacheLineSize = 128;
#else
const uptr kCacheLineSize = 64;
#endif

const uptr kMaxPathLength = 512;

+7 −0
Original line number Diff line number Diff line
@@ -58,6 +58,13 @@ typedef signed long long sptr; // NOLINT
typedef unsigned long uptr;  // NOLINT
typedef signed   long sptr;  // NOLINT
#endif  // defined(_WIN64)
#if defined(__x86_64__)
// Since x32 uses ILP32 data model in 64-bit hardware mode,  we must use
// 64-bit pointer to unwind stack frame.
typedef unsigned long long uhwptr;  // NOLINT
#else
typedef uptr uhwptr;   // NOLINT
#endif
typedef unsigned char u8;
typedef unsigned short u16;  // NOLINT
typedef unsigned int u32;
+18 −6
Original line number Diff line number Diff line
@@ -134,23 +134,32 @@ namespace __sanitizer {
    int gid;
    int cuid;
    int cgid;
#ifdef __powerpc64__
#ifdef __powerpc__
    unsigned mode;
    unsigned __seq;
    u64 __unused1;
    u64 __unused2;
#else
    unsigned short mode;
    unsigned short __pad1;
    unsigned short __seq;
    unsigned short __pad2;
#if defined(__x86_64__) && !defined(_LP64)
    u64 __unused1;
    u64 __unused2;
#else
    unsigned long __unused1;
    unsigned long __unused2;
#endif
#endif
    uptr __unused1;
    uptr __unused2;
  };

  struct __sanitizer_shmid_ds {
    __sanitizer_ipc_perm shm_perm;
  #ifndef __powerpc__
    uptr shm_segsz;
  #elif !defined(__powerpc64__)
    uptr __unused0;
  #endif
    uptr shm_atime;
  #ifndef _LP64
@@ -280,17 +289,20 @@ namespace __sanitizer {
#endif

#if SANITIZER_LINUX
#if defined(_LP64) || defined(__x86_64__)
#if defined(_LP64) || defined(__x86_64__) || defined(__powerpc__)
  typedef unsigned __sanitizer___kernel_uid_t;
  typedef unsigned __sanitizer___kernel_gid_t;
  typedef long long __sanitizer___kernel_off_t;
#else
  typedef unsigned short __sanitizer___kernel_uid_t;
  typedef unsigned short __sanitizer___kernel_gid_t;
#endif
#if defined(__x86_64__) && !defined(_LP64)
  typedef long long __sanitizer___kernel_off_t;
#else
  typedef long __sanitizer___kernel_off_t;
#endif

#if defined(__powerpc64__)
#if defined(__powerpc__)
  typedef unsigned int __sanitizer___kernel_old_uid_t;
  typedef unsigned int __sanitizer___kernel_old_gid_t;
#else
Loading