CpuProfiler: fix for CollectDeoptEvents test on arm64

We use slightly different schema for JumpTable on arm64 than for x64.

We do a branch (B) to the JumpTable from the code,
then a branch (B) to the end of jump table code
and then branch to the deoptimizer code with putting
the return address into lr register (Call which is actually Blr).

As a result the 'from' address in Deoptimizer always points to
the end of JumpTable code and we can get nothing from this information.

0) I moved save_doubles and needs_frame code out of for_loop.

1) I replaced B commands with Bl so we put different return addresses
to lr register for the different jump table entries and replaced
the final Call with Br which do not touch lr register.

Also I removed the last_entry check so we will always do the Bl
even for the last entry because we need the right address in lr.
I don't think that this will affect the performance because it
just one more branch for entire deopt mechanics.

BUG=chromium:452067
LOG=n

Review URL: https://codereview.chromium.org/984893003

Cr-Commit-Position: refs/heads/master@{#27094}
3 files changed
tree: bcb031710c9cc601a7149ba033d8e14f6060e924
  1. benchmarks/
  2. build/
  3. include/
  4. samples/
  5. src/
  6. test/
  7. testing/
  8. third_party/
  9. tools/
  10. .clang-format
  11. .gitignore
  12. .ycm_extra_conf.py
  13. AUTHORS
  14. BUILD.gn
  15. ChangeLog
  16. codereview.settings
  17. DEPS
  18. LICENSE
  19. LICENSE.strongtalk
  20. LICENSE.v8
  21. LICENSE.valgrind
  22. Makefile
  23. Makefile.android
  24. Makefile.nacl
  25. OWNERS
  26. PRESUBMIT.py
  27. README.md
  28. WATCHLISTS
README.md

V8 JavaScript Engine

V8 is Google's open source JavaScript engine.

V8 implements ECMAScript as specified in ECMA-262.

V8 is written in C++ and is used in Google Chrome, the open source browser from Google.

V8 can run standalone, or can be embedded into any C++ application.

V8 Project page: https://code.google.com/p/v8/

Getting the Code

Checkout depot tools, and run

fetch v8

This will checkout V8 into the directory v8 and fetch all of its dependencies. To stay up to date, run

git pull origin gclient sync

For fetching all branches, add the following into your remote configuration in .git/config:

    fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*
    fetch = +refs/tags/*:refs/tags/*