Updated to arc-runtime-54.5021.666.0
diff --git a/mods/android/bionic/libc/arch-arm/include/machine/ucontext.h b/mods/android/bionic/libc/arch-arm/include/machine/ucontext.h
index d3956e5..5d40d46 100644
--- a/mods/android/bionic/libc/arch-arm/include/machine/ucontext.h
+++ b/mods/android/bionic/libc/arch-arm/include/machine/ucontext.h
@@ -8,10 +8,6 @@
 
 #include <stddef.h>
 
-#if !defined(__BIONIC_HAVE_UCONTEXT_T)
-#if !defined(__native_client_nonsfi__)
-#include <asm/sigcontext.h>
-#else
 // In PNaCl toolchain, sigcontext and stack_t is not defined. So here declare
 // them.
 struct sigcontext {
@@ -44,7 +40,6 @@
   size_t ss_size;
 } stack_t;
 
-#endif
 
 // We also need greg_t for the sandbox, include it in this header as well.
 typedef unsigned long greg_t;
@@ -63,8 +58,4 @@
   unsigned long uc_regspace[128] __attribute__((__aligned__(8)));
 } ucontext_t;
 
-#else
-#include <sys/ucontext.h>
-#endif  // __BIONIC_HAVE_UCONTEXT_T
-
 #endif  // SANDBOX_LINUX_SYSTEM_HEADERS_ARM_LINUX_UCONTEXT_H_
diff --git a/mods/android/bionic/libc/arch-x86/include/machine/ucontext.h b/mods/android/bionic/libc/arch-x86/include/machine/ucontext.h
index 44bb459..99ef378 100644
--- a/mods/android/bionic/libc/arch-x86/include/machine/ucontext.h
+++ b/mods/android/bionic/libc/arch-x86/include/machine/ucontext.h
@@ -9,22 +9,15 @@
 #include <stddef.h>
 #include <stdint.h>
 
-// We do something compatible with glibc. Hopefully, at some point Android will
-// provide that for us, and __BIONIC_HAVE_UCONTEXT_T should be defined.
 // This is mostly copied from breakpad (common/android/include/sys/ucontext.h),
 // except we do use sigset_t for uc_sigmask instead of a custom type.
 
-#if !defined(__BIONIC_HAVE_UCONTEXT_T)
-#if !defined(__native_client_nonsfi__)
-#include <asm/sigcontext.h>
-#else
 // In PNaCl toolchain, sigcontext is not defined. So here declare it.
 typedef struct sigaltstack {
   void* ss_sp;
   int ss_flags;
   size_t ss_size;
 } stack_t;
-#endif
 
 /* 80-bit floating-point register */
 struct _libc_fpreg {
@@ -90,8 +83,4 @@
   struct _libc_fpstate __fpregs_mem;
 } ucontext_t;
 
-#else
-#include <sys/ucontext.h>
-#endif  // __BIONIC_HAVE_UCONTEXT_T
-
 #endif  // SANDBOX_LINUX_SYSTEM_HEADERS_ANDROID_I386_UCONTEXT_H_
diff --git a/mods/android/bionic/libc/arch-x86/include/machine/ucontext64.h b/mods/android/bionic/libc/arch-x86/include/machine/ucontext64.h
deleted file mode 100644
index 8655a2c..0000000
--- a/mods/android/bionic/libc/arch-x86/include/machine/ucontext64.h
+++ /dev/null
@@ -1,91 +0,0 @@
-// ARC MOD TRACK "third_party/chromium-ppapi/sandbox/linux/system_headers/x86_64_linux_ucontext.h"
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef SANDBOX_LINUX_SYSTEM_HEADERS_X86_64_LINUX_UCONTEXT_H_
-#define SANDBOX_LINUX_SYSTEM_HEADERS_X86_64_LINUX_UCONTEXT_H_
-
-#include <stdint.h>
-
-// We do something compatible with glibc. Hopefully, at some point Android will
-// provide that for us, and __BIONIC_HAVE_UCONTEXT_T should be defined.
-// Spec:
-// http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-AMD64/LSB-Core-AMD64/libc-ddefs.html#AEN5668
-
-#if !defined(__BIONIC_HAVE_UCONTEXT_T)
-#include <asm/sigcontext.h>
-
-struct _libc_fpxreg {
-  unsigned short significand[4];
-  unsigned short exponent;
-  unsigned short padding[3];
-};
-
-struct _libc_xmmreg {
-  uint32_t element[4];
-};
-
-struct _libc_fpstate {
-  uint16_t cwd;
-  uint16_t swd;
-  uint16_t twd;
-  uint16_t fop;
-  uint64_t rip;
-  uint64_t rdp;
-  uint32_t mxcsr;
-  uint32_t mxcsr_mask;
-  struct _libc_fpxreg _st[8];
-  struct _libc_xmmreg _xmm[16];
-  uint32_t padding[24];
-};
-
-typedef uint64_t greg_t;
-
-typedef struct {
-  greg_t gregs[23];
-  struct _libc_fpstate* fpregs;
-  unsigned long __reserved1[8];
-} mcontext_t;
-
-enum {
-  REG_R8 = 0,
-  REG_R9,
-  REG_R10,
-  REG_R11,
-  REG_R12,
-  REG_R13,
-  REG_R14,
-  REG_R15,
-  REG_RDI,
-  REG_RSI,
-  REG_RBP,
-  REG_RBX,
-  REG_RDX,
-  REG_RAX,
-  REG_RCX,
-  REG_RSP,
-  REG_RIP,
-  REG_EFL,
-  REG_CSGSFS,
-  REG_ERR,
-  REG_TRAPNO,
-  REG_OLDMASK,
-  REG_CR2,
-  NGREG,
-};
-
-typedef struct ucontext {
-  unsigned long uc_flags;
-  struct ucontext* uc_link;
-  stack_t uc_stack;
-  mcontext_t uc_mcontext;
-  sigset_t uc_sigmask;
-  struct _libc_fpstate __fpregs_mem;
-} ucontext_t;
-
-#else
-#include <sys/ucontext.h>
-#endif  // __BIONIC_HAVE_UCONTEXT_T
-
-#endif  // SANDBOX_LINUX_SYSTEM_HEADERS_X86_64_LINUX_UCONTEXT_H_
diff --git a/src/build/DEPS.chrome b/src/build/DEPS.chrome
index 86cf93a..ad2ab21 100644
--- a/src/build/DEPS.chrome
+++ b/src/build/DEPS.chrome
@@ -1 +1 @@
-591610
+616463
diff --git a/src/common/chromium_build_config.h b/src/common/chromium_build_config.h
index 74a82a3..5c59c7e 100644
--- a/src/common/chromium_build_config.h
+++ b/src/common/chromium_build_config.h
@@ -170,7 +170,7 @@
 #define ARCH_CPU_ARMEL 1
 #define ARCH_CPU_32_BITS 1
 #define ARCH_CPU_LITTLE_ENDIAN 1
-#elif defined(__aarch64__)
+#elif defined(__aarch64__) || defined(_M_ARM64)
 #define ARCH_CPU_ARM_FAMILY 1
 #define ARCH_CPU_ARM64 1
 #define ARCH_CPU_64_BITS 1
diff --git a/third_party/chromium-ppapi b/third_party/chromium-ppapi
index 39e3844..cdec4eb 160000
--- a/third_party/chromium-ppapi
+++ b/third_party/chromium-ppapi
@@ -1 +1 @@
-Subproject commit 39e38448b4b1f267434dad32833555a8bafd5aae
+Subproject commit cdec4ebe6701dc2a6d4134e223629fe798e3161e
diff --git a/third_party/native_client b/third_party/native_client
index 32b6deb..14b228f 160000
--- a/third_party/native_client
+++ b/third_party/native_client
@@ -1 +1 @@
-Subproject commit 32b6deb45d5fbc77c5f65d35db45c48cae3c06bc
+Subproject commit 14b228f23bb875bd4a25d3e88bd5f15d1bc8c87a