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

Issue 8039: - ip register cannot be used when accessing large constants in the instructio... (Closed)

Created:
12 years, 2 months ago by iposva
Modified:
9 years, 4 months ago
Reviewers:
Feng Qian
CC:
v8-dev
Visibility:
Public.

Description

- ip register cannot be used when accessing large constants in the instruction stream. Enhance the debug code to save and restore the unused holder_reg at these points. - Fix lint issues. Committed: http://code.google.com/p/v8/source/detail?r=545

Patch Set 1 #

Patch Set 2 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+20 lines, -9 lines) Patch
M src/bootstrapper.cc View 1 chunk +0 lines, -1 line 0 comments Download
M src/macro-assembler-arm.cc View 1 3 chunks +19 lines, -7 lines 0 comments Download
M src/macro-assembler-ia32.cc View 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 2 (0 generated)
iposva
12 years, 2 months ago (2008-10-21 22:28:51 UTC) #1
Feng Qian
12 years, 2 months ago (2008-10-21 22:35:48 UTC) #2
LGTM overall,

The push/pop between null check and global_context_map check can be eliminated.

http://codereview.chromium.org/8039/diff/1/4
File src/macro-assembler-arm.cc (right):

http://codereview.chromium.org/8039/diff/1/4#newcode698
Line 698: mov(ip, holder_reg);  // Restore ip.
Restore ip in the middle seems unnecessary because Check failure halts
execution. Something simpler:
  push(holder_reg);
  mov(hodler_reg, ip);
  cmp(holder_reg, ... null_value() ... );
  Check

  ldr(holder_reg, FieldMemOperand(holder_reg, HeapObject::kMapOffset);
  cmp(holder_reg, ... global_context_map() ...);
  Check(...);

  pop(holder_reg);
  ldr(ip, FieldMemOperand(holder_reg, ...));

what do you think?

Powered by Google App Engine
This is Rietveld 408576698