Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(375)

Issue 20369003: Implements far branch targets for MIPS. (Closed)

Created:
7 years, 5 months ago by zra
Modified:
7 years, 4 months ago
Reviewers:
regis
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Implements far branch targets for MIPS. This change adds a flag --mips-far-branches, which when set causes relative branches to be converted to absolute branches by determining the PC, adding the branch offset to it, and using the jr or jalr instruction to jump if the branch test passes. This procedure clobbers the assembler temporary TMP, so TMP can no longer be used in a branch test or in the branch delay slot of a relative branch. Because TMP can't be used in a branch test, a new temporary is introduced CMPRES2. This change replaces TMP with CMPRES1 or another register where TMP can no longer be used. Tests that were failing due to a too-far relative have the --mips-far-branches flag set. R=regis@google.com Committed: https://code.google.com/p/dart/source/detail?r=25543

Patch Set 1 #

Total comments: 12

Patch Set 2 : #

Patch Set 3 : #

Total comments: 8

Patch Set 4 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+736 lines, -491 lines) Patch
M runtime/vm/assembler_mips.h View 1 2 3 8 chunks +65 lines, -97 lines 0 comments Download
M runtime/vm/assembler_mips.cc View 1 2 3 9 chunks +303 lines, -41 lines 0 comments Download
M runtime/vm/assembler_mips_test.cc View 1 2 57 chunks +182 lines, -182 lines 0 comments Download
M runtime/vm/constants_mips.h View 1 2 3 chunks +17 lines, -2 lines 0 comments Download
M runtime/vm/disassembler_mips.cc View 1 2 1 chunk +4 lines, -0 lines 0 comments Download
M runtime/vm/flow_graph_compiler_mips.cc View 1 2 3 7 chunks +22 lines, -26 lines 0 comments Download
M runtime/vm/intermediate_language_mips.cc View 1 2 3 27 chunks +75 lines, -80 lines 0 comments Download
M runtime/vm/intrinsifier_mips.cc View 1 2 9 chunks +29 lines, -29 lines 0 comments Download
M runtime/vm/simulator_mips.cc View 1 2 1 chunk +7 lines, -0 lines 0 comments Download
M runtime/vm/stub_code_mips.cc View 1 2 12 chunks +26 lines, -26 lines 0 comments Download
M tests/corelib/corelib.status View 1 2 1 chunk +0 lines, -2 lines 0 comments Download
M tests/corelib/hash_map2_test.dart View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M tests/corelib/list_test.dart View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M tests/language/arithmetic_test.dart View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M tests/language/language.status View 1 2 1 chunk +0 lines, -2 lines 0 comments Download
M tests/language/large_implicit_getter_test.dart View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M tests/lib/lib.status View 1 2 1 chunk +0 lines, -1 line 0 comments Download
M tests/lib/typed_data/float32x4_shuffle_test.dart View 1 2 3 2 chunks +2 lines, -1 line 0 comments Download

Messages

Total messages: 6 (0 generated)
zra
Sorry this ended up a bit big, but most of it is just switching around ...
7 years, 5 months ago (2013-07-25 18:15:26 UTC) #1
regis
Mmm, this is quite expensive. See my comments about preserving RA in the frame, done ...
7 years, 5 months ago (2013-07-25 20:07:43 UTC) #2
zra
I have changed the far branch so that it is how we discussed. That is, ...
7 years, 5 months ago (2013-07-26 21:26:15 UTC) #3
regis
LGTM https://codereview.chromium.org/20369003/diff/18002/runtime/vm/assembler_mips.cc File runtime/vm/assembler_mips.cc (right): https://codereview.chromium.org/20369003/diff/18002/runtime/vm/assembler_mips.cc#newcode57 runtime/vm/assembler_mips.cc:57: static int32_t DecodeLoadImmediate(int32_t low, int32_t high) { int32_t ...
7 years, 5 months ago (2013-07-26 22:30:37 UTC) #4
zra
Thanks for the review! https://codereview.chromium.org/20369003/diff/18002/runtime/vm/assembler_mips.cc File runtime/vm/assembler_mips.cc (right): https://codereview.chromium.org/20369003/diff/18002/runtime/vm/assembler_mips.cc#newcode57 runtime/vm/assembler_mips.cc:57: static int32_t DecodeLoadImmediate(int32_t low, int32_t ...
7 years, 5 months ago (2013-07-26 23:29:03 UTC) #5
zra
7 years, 5 months ago (2013-07-26 23:30:44 UTC) #6
Message was sent while issue was closed.
Committed patchset #4 manually as r25543 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698