Permalink
Browse files

Version 3.17.5

Made __proto__ a foreign callback on Object.prototype. (issue 621, issue 1949 and issue 2441)

Performance and stability improvements on all platforms.

git-svn-id: https://v8.googlecode.com/svn/trunk@13744 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
  • Loading branch information...
1 parent 5d8992a commit 9371452b63e36308adee3c89ba2de7723fe7a3a6 mstarzinger@chromium.org committed Feb 27, 2013
Showing with 1,676 additions and 966 deletions.
  1. +8 −0 ChangeLog
  2. +1 −1 Makefile
  3. +11 −5 Makefile.android
  4. +15 −0 build/android.gypi
  5. +8 −9 src/arm/assembler-arm.cc
  6. +1 −2 src/arm/assembler-arm.h
  7. +119 −151 src/arm/code-stubs-arm.cc
  8. +80 −37 src/arm/deoptimizer-arm.cc
  9. +4 −3 src/arm/full-codegen-arm.cc
  10. +6 −0 src/arm/lithium-arm.cc
  11. +14 −0 src/arm/lithium-arm.h
  12. +35 −17 src/arm/lithium-codegen-arm.cc
  13. +4 −5 src/arm/macro-assembler-arm.cc
  14. +1 −2 src/arm/macro-assembler-arm.h
  15. +19 −3 src/bootstrapper.cc
  16. +12 −8 src/circular-queue.cc
  17. +2 −2 src/circular-queue.h
  18. +57 −2 src/code-stubs-hydrogen.cc
  19. +16 −10 src/code-stubs.h
  20. +47 −13 src/cpu-profiler.cc
  21. +10 −5 src/cpu-profiler.h
  22. +1 −1 src/deoptimizer.cc
  23. +2 −2 src/deoptimizer.h
  24. +3 −2 src/factory.cc
  25. +2 −1 src/factory.h
  26. +4 −0 src/flag-definitions.h
  27. +7 −6 src/frames.cc
  28. +27 −15 src/heap-snapshot-generator.cc
  29. +21 −0 src/hydrogen-instructions.h
  30. +54 −5 src/hydrogen.cc
  31. +27 −7 src/hydrogen.h
  32. +153 −166 src/ia32/code-stubs-ia32.cc
  33. +79 −36 src/ia32/deoptimizer-ia32.cc
  34. +16 −6 src/ia32/full-codegen-ia32.cc
  35. +33 −18 src/ia32/lithium-codegen-ia32.cc
  36. +6 −0 src/ia32/lithium-ia32.cc
  37. +14 −0 src/ia32/lithium-ia32.h
  38. +5 −11 src/json-parser.h
  39. +1 −0 src/jsregexp.cc
  40. +15 −17 src/mips/code-stubs-mips.cc
  41. +7 −21 src/objects.cc
  42. +10 −0 src/objects.h
  43. +17 −0 src/platform-cygwin.cc
  44. +17 −0 src/platform-freebsd.cc
  45. +98 −39 src/platform-linux.cc
  46. +17 −0 src/platform-macos.cc
  47. +21 −0 src/platform-nullos.cc
  48. +17 −0 src/platform-openbsd.cc
  49. +18 −0 src/platform-solaris.cc
  50. +17 −0 src/platform-win32.cc
  51. +25 −4 src/platform.h
  52. +2 −16 src/property.h
  53. +8 −40 src/runtime.cc
  54. +25 −0 src/scopeinfo.cc
  55. +30 −24 src/v8natives.js
  56. +2 −2 src/version.cc
  57. +141 −159 src/x64/code-stubs-x64.cc
  58. +86 −36 src/x64/deoptimizer-x64.cc
  59. +16 −6 src/x64/full-codegen-x64.cc
  60. +32 −17 src/x64/lithium-codegen-x64.cc
  61. +6 −0 src/x64/lithium-x64.cc
  62. +14 −0 src/x64/lithium-x64.h
  63. +48 −7 test/cctest/test-api.cc
  64. +4 −4 test/cctest/test-cpu-profiler.cc
  65. +1 −2 test/cctest/test-heap-profiler.cc
  66. +2 −2 test/cctest/test-regexp.cc
  67. +1 −1 test/mjsunit/builtins.js
  68. +2 −2 test/mjsunit/harmony/object-observe.js
  69. +0 −1 test/mjsunit/harmony/proxies.js
  70. +17 −10 test/mjsunit/json.js
  71. +31 −0 test/mjsunit/regress/regress-2441.js
  72. +0 −3 test/test262/test262.status
  73. +4 −2 tools/gyp/v8.gyp
View
@@ -1,3 +1,11 @@
+2013-02-27: Version 3.17.5
+
+ Made __proto__ a foreign callback on Object.prototype.
+ (issue 621, issue 1949 and issue 2441)
+
+ Performance and stability improvements on all platforms.
+
+
2013-02-25: Version 3.17.4
Performance and stability improvements on all platforms.
View
@@ -148,7 +148,7 @@ endif
ARCHES = ia32 x64 arm mipsel
DEFAULT_ARCHES = ia32 x64 arm
MODES = release debug
-ANDROID_ARCHES = android_ia32 android_arm
+ANDROID_ARCHES = android_ia32 android_arm android_mipsel
# List of files that trigger Makefile regeneration:
GYPFILES = build/all.gyp build/common.gypi build/standalone.gypi \
View
@@ -26,7 +26,7 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Those definitions should be consistent with the main Makefile
-ANDROID_ARCHES = android_ia32 android_arm
+ANDROID_ARCHES = android_ia32 android_arm android_mipsel
MODES = release debug
# Generates all combinations of ANDROID ARCHES and MODES,
@@ -50,11 +50,17 @@ ifeq ($(ARCH), android_arm)
DEFINES += arm_neon=0 armv7=1
TOOLCHAIN_ARCH = arm-linux-androideabi-4.6
else
- ifeq ($(ARCH), android_ia32)
- DEFINES = target_arch=ia32 v8_target_arch=ia32 android_target_arch=x86
- TOOLCHAIN_ARCH = x86-4.6
+ ifeq ($(ARCH), android_mipsel)
+ DEFINES = target_arch=mipsel v8_target_arch=mipsel android_target_arch=mips
+ DEFINES += mips_arch_variant=mips32r2
+ TOOLCHAIN_ARCH = mipsel-linux-android-4.6
else
- $(error Target architecture "${ARCH}" is not supported)
+ ifeq ($(ARCH), android_ia32)
+ DEFINES = target_arch=ia32 v8_target_arch=ia32 android_target_arch=x86
+ TOOLCHAIN_ARCH = x86-4.6
+ else
+ $(error Target architecture "${ARCH}" is not supported)
+ endif
endif
endif
View
@@ -181,6 +181,11 @@
'-L<(android_stlport_libs)/armeabi',
],
}],
+ ['target_arch=="mipsel"', {
+ 'ldflags': [
+ '-L<(android_stlport_libs)/mips',
+ ],
+ }],
['target_arch=="ia32"', {
'ldflags': [
'-L<(android_stlport_libs)/x86',
@@ -197,6 +202,16 @@
'-fno-stack-protector',
],
}],
+ ['target_arch=="mipsel"', {
+ # The mips toolchain currently has problems with stack-protector.
+ 'cflags!': [
+ '-fstack-protector',
+ '-U__linux__'
+ ],
+ 'cflags': [
+ '-fno-stack-protector',
+ ],
+ }],
],
'target_conditions': [
['_type=="executable"', {
View
@@ -2067,8 +2067,7 @@ static bool FitsVMOVDoubleImmediate(double d, uint32_t *encoding) {
void Assembler::vmov(const DwVfpRegister dst,
double imm,
- const Register scratch,
- const Condition cond) {
+ const Register scratch) {
ASSERT(CpuFeatures::IsEnabled(VFP2));
uint32_t enc;
@@ -2081,7 +2080,7 @@ void Assembler::vmov(const DwVfpRegister dst,
// Vd(15-12) | 101(11-9) | sz=1(8) | imm4L(3-0)
int vd, d;
dst.split_code(&vd, &d);
- emit(cond | 0x1D*B23 | d*B22 | 0x3*B20 | vd*B12 | 0x5*B9 | B8 | enc);
+ emit(al | 0x1D*B23 | d*B22 | 0x3*B20 | vd*B12 | 0x5*B9 | B8 | enc);
} else if (FLAG_enable_vldr_imm) {
// TODO(jfb) Temporarily turned off until we have constant blinding or
// some equivalent mitigation: an attacker can otherwise control
@@ -2099,7 +2098,7 @@ void Assembler::vmov(const DwVfpRegister dst,
// that's tricky because vldr has a limited reach. Furthermore
// it breaks load locality.
RecordRelocInfo(imm);
- vldr(dst, MemOperand(pc, 0), cond);
+ vldr(dst, MemOperand(pc, 0));
} else {
// Synthesise the double from ARM immediates.
uint32_t lo, hi;
@@ -2110,27 +2109,27 @@ void Assembler::vmov(const DwVfpRegister dst,
// Move the low part of the double into the lower of the corresponsing S
// registers of D register dst.
mov(ip, Operand(lo));
- vmov(dst.low(), ip, cond);
+ vmov(dst.low(), ip);
// Move the high part of the double into the higher of the
// corresponsing S registers of D register dst.
mov(ip, Operand(hi));
- vmov(dst.high(), ip, cond);
+ vmov(dst.high(), ip);
} else {
// D16-D31 does not have S registers, so move the low and high parts
// directly to the D register using vmov.32.
// Note: This may be slower, so we only do this when we have to.
mov(ip, Operand(lo));
- vmov(dst, VmovIndexLo, ip, cond);
+ vmov(dst, VmovIndexLo, ip);
mov(ip, Operand(hi));
- vmov(dst, VmovIndexHi, ip, cond);
+ vmov(dst, VmovIndexHi, ip);
}
} else {
// Move the low and high parts of the double to a D register in one
// instruction.
mov(ip, Operand(lo));
mov(scratch, Operand(hi));
- vmov(dst, ip, scratch, cond);
+ vmov(dst, ip, scratch);
}
}
}
View
@@ -1066,8 +1066,7 @@ class Assembler : public AssemblerBase {
void vmov(const DwVfpRegister dst,
double imm,
- const Register scratch = no_reg,
- const Condition cond = al);
+ const Register scratch = no_reg);
void vmov(const SwVfpRegister dst,
const SwVfpRegister src,
const Condition cond = al);
Oops, something went wrong.

0 comments on commit 9371452

Please sign in to comment.