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

Issue 467103005: Fixes to support ARMv5 lego mindstorm. (Closed)

Created:
6 years, 4 months ago by zra
Modified:
6 years, 4 months ago
Reviewers:
regis, srdjan
CC:
reviews_dartlang.org, vm-dev_dartlang.org
Visibility:
Public.

Description

Fixes to support ARMv5 lego mindstorm. 1. Deopts on division when neither vfp nor idiv are present. In a subsequent CL, I can add a leaf runtime call for this. 2. Uses a different PC read offset in STR and STM instructions. On ARMv5 and earlier, the PC read offset is 8 except in STR and STM instructions, where it is implementation defined. On lego mindstorm it is 12. This requires changing kEntryPointToPcMarkerOffset to be a function. 3. Uses a dummy struct to compute the size of a compressed pc descriptor to avoid alignment issues. sizeof(PcDescriptorRec) is 16 on ia32 and arm. Subtracting sizeof(int16_t) gives 14, which creates alignment problems on ARM, i.e. poor performance on ARMv6 and later, and wrong results on ARMv5 and earlier. R=regis@google.com Committed: https://code.google.com/p/dart/source/detail?r=39250

Patch Set 1 #

Total comments: 2

Patch Set 2 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+109 lines, -38 lines) Patch
M runtime/vm/assembler_arm.h View 2 chunks +4 lines, -1 line 0 comments Download
M runtime/vm/assembler_arm.cc View 1 3 chunks +8 lines, -0 lines 0 comments Download
M runtime/vm/assembler_arm64.h View 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/assembler_ia32.h View 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/assembler_ia32.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/assembler_mips.h View 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/assembler_mips.cc View 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/assembler_x64.h View 1 chunk +3 lines, -0 lines 0 comments Download
M runtime/vm/assembler_x64.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/cpu_arm.h View 4 chunks +11 lines, -0 lines 0 comments Download
M runtime/vm/cpu_arm.cc View 2 chunks +5 lines, -0 lines 0 comments Download
M runtime/vm/deopt_instructions.cc View 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/flow_graph_compiler_x64.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/intermediate_language_arm.cc View 5 chunks +30 lines, -19 lines 0 comments Download
M runtime/vm/intrinsifier_arm.cc View 5 chunks +21 lines, -8 lines 0 comments Download
M runtime/vm/raw_object.h View 1 chunk +8 lines, -0 lines 0 comments Download
M runtime/vm/raw_object.cc View 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/stack_frame.cc View 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 4 (0 generated)
zra
6 years, 4 months ago (2014-08-13 19:29:01 UTC) #1
regis
LGTM https://codereview.chromium.org/467103005/diff/1/runtime/vm/assembler_arm.cc File runtime/vm/assembler_arm.cc (right): https://codereview.chromium.org/467103005/diff/1/runtime/vm/assembler_arm.cc#newcode561 runtime/vm/assembler_arm.cc:561: if (TargetCPUFeatures::arm_version() == ARMv5TE) { Can you add ...
6 years, 4 months ago (2014-08-13 19:47:39 UTC) #2
zra
https://codereview.chromium.org/467103005/diff/1/runtime/vm/assembler_arm.cc File runtime/vm/assembler_arm.cc (right): https://codereview.chromium.org/467103005/diff/1/runtime/vm/assembler_arm.cc#newcode561 runtime/vm/assembler_arm.cc:561: if (TargetCPUFeatures::arm_version() == ARMv5TE) { On 2014/08/13 19:47:39, regis ...
6 years, 4 months ago (2014-08-13 20:08:55 UTC) #3
zra
6 years, 4 months ago (2014-08-14 15:42:13 UTC) #4
Message was sent while issue was closed.
Committed patchset #2 manually as r39250 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698