Reviewers: ulan, jbramley,
Message:
This is a reland of r21177.
To make this easier to review I've updated the patchset's independently:
Patchset 1 contains the original patch.
Patchset 2 adds the fixes landed in r21179
Patchset 3 adds additional fixes which should address the remaining
crashes.
Patchset 4 disables the AssertStackConsistency in BumpSystemStackPointer
due to
what I think is an unrelated bug.
PTAL.
https://codereview.chromium.org/271543004/diff/60001/src/arm64/macro-assembler-arm64-inl.h
File src/arm64/macro-assembler-arm64-inl.h (right):
https://codereview.chromium.org/271543004/diff/60001/src/arm64/macro-assembler-arm64-inl.h#newcode1288
src/arm64/macro-assembler-arm64-inl.h:1288: //
AssertStackConsistency(true);
If I enable this I get the following assert in
debug-multiple-breakpoints.js on a nosnapshot build. I've replaced this
with an equivalent number of nop() instructions and still got the same
result, so this looks like an unrelated failure which I am tickling by
changing the amount of code generated. Any ideas Ulan?
./out/arm64.debug/d8 --test --random-seed=1269372994 --stress-opt
--always-opt --nohard-abort --nodead-code-elimination --nofold-constants
--enable-slow-asserts --debug-code --verify-heap --expose-debug-as debug
test/mjsunit/mjsunit.js test/mjsunit/debug-multiple-breakpoints.js
============ Stress 1/2 ============
============ Stress 2/2 ============
#
# Fatal error in ../src/debug.cc, line 2041
# CHECK_EQ(Code::FUNCTION, function->code()->kind()) failed
# Expected: 0
# Found: 4
#
==== C stack trace ===============================
1: V8_Fatal
2: CheckEqualsHelper(char const*, int, char const*, int, char const*,
int)
3:
v8::internal::Debug::MaybeRecompileFunctionForDebugging(v8::internal::Handle<v8::internal::JSFunction>)
4: v8::internal::Debug::PrepareForBreakPoints()
5:
v8::internal::Debug::SetBreakPointForScript(v8::internal::Handle<v8::internal::Script>,
v8::internal::Handle<v8::internal::Object>, int*,
v8::internal::BreakPositionAlignment)
6: ??
7: v8::internal::Runtime_SetScriptBreakPoint(int,
v8::internal::Object**, v8::internal::Isolate*)
8: v8::internal::Simulator::DoRuntimeCall(v8::internal::Instruction*)
9: v8::internal::Simulator::VisitException(v8::internal::Instruction*)
10:
v8::internal::Decoder<v8::internal::Simulator>::DecodeBranchSystemException(v8::internal::Instruction*)
11:
v8::internal::Decoder<v8::internal::Simulator>::Decode(v8::internal::Instruction*)
12: v8::internal::Simulator::ExecuteInstruction()
13: v8::internal::Simulator::Run()
14: v8::internal::Simulator::CheckPCSComplianceAndRun()
15: v8::internal::Simulator::CallVoid(unsigned char*,
v8::internal::Simulator::CallArgument*)
16: v8::internal::Simulator::CallInt64(unsigned char*,
v8::internal::Simulator::CallArgument*)
17: v8::internal::Simulator::CallJS(unsigned char*, unsigned char*,
v8::internal::JSFunction*, v8::internal::Object*, long,
v8::internal::Object***)
18: ??
19: v8::internal::Execution::Call(v8::internal::Isolate*,
v8::internal::Handle<v8::internal::Object>,
v8::internal::Handle<v8::internal::Object>, int,
v8::internal::Handle<v8::internal::Object>*, bool)
20: v8::Script::Run()
21: v8::Shell::ExecuteString(v8::Isolate*, v8::Handle<v8::String>,
v8::Handle<v8::Value>, bool, bool)
22: v8::SourceGroup::Execute(v8::Isolate*)
23: v8::Shell::RunMain(v8::Isolate*, int, char**)
24: v8::Shell::Main(int, char**)
25: main
26: __libc_start_main
27: ??
Aborted (core dumped)
Description:
Reland - Arm64: Ensure that csp is always aligned to 16 byte values even if
jssp
is not.
Even although the Arm64 specification specifies that csp
only needs to be aligned to 16 bytes if it is dereferenced, some
implementations show poor performance.
Also makes the following change:
- Enable CPU support for arm64 to enable probing of cpu implementer and cpu
part.
- Add ALWAYS_ALIGN_CSP CpuFeature for Arm64 and set it based on runtime
probing
of the cpu imp
- Rename PrepareForPush and PrepareForPop to PushPreamble and PopPostamble
and
move PopPostabl
Original Review URL: https://codereview.chromium.org/264773004
Please review this at https://codereview.chromium.org/271543004/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+195, -93 lines):
M src/arm64/code-stubs-arm64.cc
M src/arm64/cpu-arm64.h
M src/arm64/cpu-arm64.cc
M src/arm64/macro-assembler-arm64.h
M src/arm64/macro-assembler-arm64.cc
M src/arm64/macro-assembler-arm64-inl.h
M src/arm64/regexp-macro-assembler-arm64.cc
M src/builtins.cc
M src/cpu.h
M src/cpu.cc
M src/flag-definitions.h
M src/v8globals.h
M test/cctest/test-code-stubs-arm64.cc
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.