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

Issue 1351403004: Resolve some disagreements between SIMARM and XARM on offsets used in compiled code. (Closed)

Created:
5 years, 3 months ago by rmacnak
Modified:
5 years, 2 months ago
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

Resolve some disagreements between SIMARM and XARM on offsets used in compiled code. gcc ia32 (SIMARM) seems to prefer to pack structures whereas gcc arm (XARM) seems to prefer to keeping things aligned. R=fschneider@google.com Committed: https://github.com/dart-lang/sdk/commit/5dc51af924b9d3cb1005a530fe95dc1663b1eb53

Patch Set 1 #

Total comments: 5
Unified diffs Side-by-side diffs Delta from patch set Stats (+29 lines, -25 lines) Patch
M runtime/vm/heap.h View 1 chunk +2 lines, -2 lines 2 comments Download
M runtime/vm/heap.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M runtime/vm/isolate.h View 5 chunks +10 lines, -10 lines 3 comments Download
M runtime/vm/isolate.cc View 4 chunks +7 lines, -5 lines 0 comments Download
M runtime/vm/raw_object.h View 2 chunks +4 lines, -2 lines 0 comments Download
M runtime/vm/scavenger.h View 1 chunk +4 lines, -4 lines 0 comments Download

Messages

Total messages: 9 (3 generated)
rmacnak
5 years, 3 months ago (2015-09-18 23:56:33 UTC) #2
rmacnak
+Florian
5 years, 2 months ago (2015-09-29 23:37:36 UTC) #5
Florian Schneider
lgtm https://codereview.chromium.org/1351403004/diff/1/runtime/vm/heap.h File runtime/vm/heap.h (right): https://codereview.chromium.org/1351403004/diff/1/runtime/vm/heap.h#newcode317 runtime/vm/heap.h:317: Isolate* isolate_; This seems still fragile, since there ...
5 years, 2 months ago (2015-09-30 09:38:13 UTC) #6
rmacnak
Of course, this isn't comprehensive, but it's enough to precompile simple programs with simarm and ...
5 years, 2 months ago (2015-10-01 22:00:50 UTC) #7
rmacnak
Committed patchset #1 (id:1) manually as 5dc51af924b9d3cb1005a530fe95dc1663b1eb53 (presubmit successful).
5 years, 2 months ago (2015-10-01 22:01:25 UTC) #8
Florian Schneider
5 years, 2 months ago (2015-10-02 13:41:09 UTC) #9
Message was sent while issue was closed.
https://codereview.chromium.org/1351403004/diff/1/runtime/vm/isolate.h
File runtime/vm/isolate.h (right):

https://codereview.chromium.org/1351403004/diff/1/runtime/vm/isolate.h#newcod...
runtime/vm/isolate.h:820: uword stack_limit_;
On 2015/10/01 22:00:49, rmacnak wrote:
> On 2015/09/30 09:38:13, Florian Schneider wrote:
> > Add a COMPILE_ASSERT at for the first member, and maybe ALIGNx for the
others
> to
> > make sure the offsets are consistent across compilers.
> 
> The compiler won't allow use of OFFSET_OF in a COMPILE_ASSERT.
> 
> runtime/vm/globals.h:54:69: error: a cast to a type other than an integral or
> enumeration type cannot appear in a constant-expression
>   
(reinterpret_cast<intptr_t>(&(reinterpret_cast<type*>(kOffsetOfPtr)->field))

gcc has the offsetof macro which can appear as compile-time constant - Not sure
about MSVC, but the problem you're fixing here affects gcc, so we could use it
here under an #ifdef.

Powered by Google App Engine
This is Rietveld 408576698