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

Issue 987003: Fix bug in propagation of type information into registers.... (Closed)

Created:
10 years, 9 months ago by fschneider
Modified:
9 years, 6 months ago
Reviewers:
Lasse Reichstein
CC:
v8-dev
Visibility:
Public.

Description

Fix bug in propagation of type information into registers. The number type information of results has to be also copied when calling ToRegister with a fixed register as destination. Also fix an unbound label and a missing CpuFeatures scope. Committed: http://code.google.com/p/v8/source/detail?r=4155

Patch Set 1 #

Patch Set 2 : '' #

Total comments: 6

Patch Set 3 : '' #

Patch Set 4 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+46 lines, -16 lines) Patch
M src/ia32/codegen-ia32.cc View 1 2 3 5 chunks +43 lines, -16 lines 0 comments Download
M src/ia32/register-allocator-ia32.cc View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M src/x64/register-allocator-x64.cc View 1 2 3 2 chunks +2 lines, -0 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
fschneider
Small code review.
10 years, 9 months ago (2010-03-16 12:45:46 UTC) #1
Lasse Reichstein
LGTM http://codereview.chromium.org/987003/diff/5001/6002 File src/ia32/codegen-ia32.cc (right): http://codereview.chromium.org/987003/diff/5001/6002#newcode6525 src/ia32/codegen-ia32.cc:6525: __ and_(operand.reg(), ~kSmiTagMask); // Remove inverted smi-tag. ASSERT_EQ(0, ...
10 years, 9 months ago (2010-03-17 07:10:39 UTC) #2
fschneider
10 years, 9 months ago (2010-03-17 09:19:50 UTC) #3
http://codereview.chromium.org/987003/diff/5001/6002
File src/ia32/codegen-ia32.cc (right):

http://codereview.chromium.org/987003/diff/5001/6002#newcode6525
src/ia32/codegen-ia32.cc:6525: __ and_(operand.reg(), ~kSmiTagMask);  // Remove
inverted smi-tag.
On 2010/03/17 07:10:39, Lasse Reichstein wrote:
> ASSERT_EQ(0, kSmiTag).
> Seems wasteful to use a 32-bit immediate to clear one bit.
> How about:
>   lea(operand.reg(), Operand(operand.reg(), kSmiTagMask));
>   not(operand.reg());
> (i.e., set it before not'ing and use lea to reduce size).
> That, or use and_b (but that's a partial register write, I'm not sure that's
> good for efficiency).

Good point. I'll go for your first suggestion using lea.

http://codereview.chromium.org/987003/diff/5001/6002#newcode6543
src/ia32/codegen-ia32.cc:6543: __ and_(answer.reg(), ~kSmiTagMask);  // Remove
inverted smi-tag.
On 2010/03/17 07:10:39, Lasse Reichstein wrote:
> Ditto here.

Done.

http://codereview.chromium.org/987003/diff/5001/6002#newcode6571
src/ia32/codegen-ia32.cc:6571: } else {
On 2010/03/17 07:10:39, Lasse Reichstein wrote:
> If operand.number_info().IsInteger32, could that also be propagated?

Done.

Powered by Google App Engine
This is Rietveld 408576698