|
|
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
Total comments: 12
Total comments: 8
|
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
|
Total messages: 6 (0 generated)
|