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

Issue 12703028: Adds Stop to MIPS. Starts on MIPS call patcher. (Closed)

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

Description

Adds Stop to MIPS. Starts on MIPS call patcher. Committed: https://code.google.com/p/dart/source/detail?r=20527

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Total comments: 17

Patch Set 4 : #

Total comments: 10

Patch Set 5 : #

Total comments: 5
Unified diffs Side-by-side diffs Delta from patch set Stats (+277 lines, -49 lines) Patch
M runtime/tests/vm/vm.status View 1 2 3 4 2 chunks +0 lines, -2 lines 0 comments Download
M runtime/vm/assembler_mips.h View 1 2 3 4 9 chunks +93 lines, -14 lines 3 comments Download
M runtime/vm/assembler_mips.cc View 1 2 3 4 3 chunks +78 lines, -5 lines 2 comments Download
M runtime/vm/constants_mips.h View 1 2 3 4 2 chunks +2 lines, -1 line 0 comments Download
M runtime/vm/disassembler_test.cc View 1 2 3 4 2 chunks +0 lines, -5 lines 0 comments Download
M runtime/vm/instructions_mips.h View 1 2 3 4 1 chunk +9 lines, -2 lines 0 comments Download
M runtime/vm/instructions_mips.cc View 1 2 3 4 2 chunks +76 lines, -6 lines 0 comments Download
M runtime/vm/instructions_mips_test.cc View 1 2 3 4 1 chunk +8 lines, -2 lines 0 comments Download
M runtime/vm/simulator_mips.h View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M runtime/vm/simulator_mips.cc View 1 2 3 4 1 chunk +10 lines, -2 lines 0 comments Download
M runtime/vm/stub_code.cc View 1 2 3 4 1 chunk +0 lines, -10 lines 0 comments Download

Messages

Total messages: 7 (0 generated)
zra
I've tried to follow the ARM stuff as much as possible, but in the call ...
7 years, 9 months ago (2013-03-25 22:39:16 UTC) #1
regis
I think you need to sync again with ARM. However, Srdjan pointed out that we ...
7 years, 9 months ago (2013-03-25 23:03:40 UTC) #2
zra
Waiting to sync up with ARM =) https://codereview.chromium.org/12703028/diff/14001/runtime/vm/assembler_mips.cc File runtime/vm/assembler_mips.cc (right): https://codereview.chromium.org/12703028/diff/14001/runtime/vm/assembler_mips.cc#newcode78 runtime/vm/assembler_mips.cc:78: object_pool_ = ...
7 years, 9 months ago (2013-03-25 23:39:17 UTC) #3
regis
LGTM https://codereview.chromium.org/12703028/diff/24001/runtime/vm/assembler_mips.cc File runtime/vm/assembler_mips.cc (right): https://codereview.chromium.org/12703028/diff/24001/runtime/vm/assembler_mips.cc#newcode67 runtime/vm/assembler_mips.cc:67: lw(rd, Address(rd)); I think you can do slightly ...
7 years, 9 months ago (2013-03-26 00:49:06 UTC) #4
zra
https://codereview.chromium.org/12703028/diff/24001/runtime/vm/assembler_mips.cc File runtime/vm/assembler_mips.cc (right): https://codereview.chromium.org/12703028/diff/24001/runtime/vm/assembler_mips.cc#newcode67 runtime/vm/assembler_mips.cc:67: lw(rd, Address(rd)); On 2013/03/26 00:49:06, regis wrote: > I ...
7 years, 9 months ago (2013-03-26 17:29:07 UTC) #5
zra
Committed patchset #5 manually as r20527 (presubmit successful).
7 years, 9 months ago (2013-03-26 17:50:49 UTC) #6
regis
7 years, 9 months ago (2013-03-26 17:52:35 UTC) #7
Message was sent while issue was closed.
LGTM, with a few comments.
Please, have a look at the suggested simpler code and try it.

Thanks,
Regis

https://codereview.chromium.org/12703028/diff/18003/runtime/vm/assembler_mips.cc
File runtime/vm/assembler_mips.cc (right):

https://codereview.chromium.org/12703028/diff/18003/runtime/vm/assembler_mips...
runtime/vm/assembler_mips.cc:32: // Reletive destination from an instruction
after the branch.
Relative

https://codereview.chromium.org/12703028/diff/18003/runtime/vm/assembler_mips...
runtime/vm/assembler_mips.cc:69: if (Address::CanHoldOffset(offset_low)) {
You need this test, because you chopped off 16 bits of the offset (unsigned),
and the lw instruction takes a signed offset.
Could you subtract the signed 16 lower bits of the 32-bit offset instead?
Something like this:

const int16_t offset_low = Utils::Low16Bits(offset);  // Signed.
offset -= offset_low;
const uint16_t offset_high = Utils::High16Bits(offset);  // Unsigned.
if (offset_high != 0) {
  lui(rd, Immediate(offset_high));
  addu(rd, rd, PP);
  lw(rd, Address(rd, offset_low));
} else {
  lw(rd, Address(PP, offset_low));
}

https://codereview.chromium.org/12703028/diff/18003/runtime/vm/assembler_mips.h
File runtime/vm/assembler_mips.h (right):

https://codereview.chromium.org/12703028/diff/18003/runtime/vm/assembler_mips...
runtime/vm/assembler_mips.h:675: // Reletive destination from an instruction
after the branch.
ditto

https://codereview.chromium.org/12703028/diff/18003/runtime/vm/assembler_mips...
runtime/vm/assembler_mips.h:675: // Reletive destination from an instruction
after the branch.
ditto

https://codereview.chromium.org/12703028/diff/18003/runtime/vm/assembler_mips...
runtime/vm/assembler_mips.h:689: // Reletive destination from an instruction
after the branch.
ditto

Powered by Google App Engine
This is Rietveld 408576698