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

Issue 1301963003: VM: Clean up and fix bugs in instructions patterns (Closed)

Created:
5 years, 4 months ago by Florian Schneider
Modified:
5 years, 4 months ago
Reviewers:
rmacnak
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Base URL:
git@github.com:dart-lang/sdk.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

VM: Clean up and fix bugs in instructions patterns Fix bug in DecodeLoadWordFromPool: used Array::element_offset instead of ObjectPool::element_offset. This only worked because they accidentally return the same value. Remove virtual methods from InstructionsPatterns on ia32 and x64. Instead use a template for code reuse. This avoids among others vtables for the *Pattern classes and saves >= 4K in VM binary code size. BUG= R=rmacnak@google.com Committed: https://github.com/dart-lang/sdk/commit/b5966db69ed201a99c1eecddb3cf5fd22b759af6

Patch Set 1 #

Patch Set 2 : s/Pattern::InstructionLength/Pattern::pattern_length_in_bytes/g #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+158 lines, -201 lines) Patch
M runtime/vm/code_patcher_ia32.cc View 1 1 chunk +2 lines, -2 lines 0 comments Download
M runtime/vm/code_patcher_x64.cc View 1 4 chunks +7 lines, -7 lines 0 comments Download
M runtime/vm/instructions_arm.cc View 1 chunk +1 line, -3 lines 2 comments Download
M runtime/vm/instructions_arm64.cc View 1 chunk +2 lines, -1 line 0 comments Download
M runtime/vm/instructions_ia32.h View 1 6 chunks +71 lines, -33 lines 0 comments Download
M runtime/vm/instructions_ia32.cc View 1 chunk +0 lines, -55 lines 0 comments Download
M runtime/vm/instructions_mips.cc View 1 chunk +1 line, -3 lines 0 comments Download
M runtime/vm/instructions_x64.h View 1 6 chunks +63 lines, -41 lines 0 comments Download
M runtime/vm/instructions_x64.cc View 2 chunks +3 lines, -54 lines 0 comments Download
M runtime/vm/object.h View 1 chunk +6 lines, -0 lines 0 comments Download
M runtime/vm/stub_code_ia32.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/stub_code_x64.cc View 1 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 5 (1 generated)
Florian Schneider
5 years, 4 months ago (2015-08-20 12:37:10 UTC) #2
rmacnak
lgtm https://codereview.chromium.org/1301963003/diff/20001/runtime/vm/instructions_arm.cc File runtime/vm/instructions_arm.cc (left): https://codereview.chromium.org/1301963003/diff/20001/runtime/vm/instructions_arm.cc#oldcode154 runtime/vm/instructions_arm.cc:154: ASSERT(Utils::IsAligned(offset, 4)); Consider pushing the alignment assert into ...
5 years, 4 months ago (2015-08-20 20:44:54 UTC) #3
Florian Schneider
Committed patchset #2 (id:20001) manually as b5966db69ed201a99c1eecddb3cf5fd22b759af6.
5 years, 4 months ago (2015-08-21 07:31:42 UTC) #4
Florian Schneider
5 years, 4 months ago (2015-08-21 07:45:09 UTC) #5
Message was sent while issue was closed.
https://codereview.chromium.org/1301963003/diff/20001/runtime/vm/instructions...
File runtime/vm/instructions_arm.cc (left):

https://codereview.chromium.org/1301963003/diff/20001/runtime/vm/instructions...
runtime/vm/instructions_arm.cc:154: ASSERT(Utils::IsAligned(offset, 4));
On 2015/08/20 20:44:54, rmacnak wrote:
> Consider pushing the alignment assert into ObjectPool::IndexFromOffset.

Done (in my other CL).

Powered by Google App Engine
This is Rietveld 408576698