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

Issue 2819012: X64: Load HeapNumberMap once in BinaryOpStub, and reuse it. (Closed)

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

Description

X64: Load HeapNumberMap once in BinaryOpStub, and reuse it.

Patch Set 1 #

Total comments: 12

Patch Set 2 : Addressed review comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+134 lines, -41 lines) Patch
M src/x64/codegen-x64.cc View 1 16 chunks +117 lines, -41 lines 0 comments Download
M src/x64/macro-assembler-x64.h View 1 chunk +5 lines, -0 lines 0 comments Download
M src/x64/macro-assembler-x64.cc View 2 chunks +12 lines, -0 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Lasse Reichstein
10 years, 6 months ago (2010-06-18 12:48:30 UTC) #1
Erik Corry
LGTM, but there are clearly more opportunities here. http://codereview.chromium.org/2819012/diff/1/2 File src/x64/codegen-x64.cc (right): http://codereview.chromium.org/2819012/diff/1/2#newcode10545 src/x64/codegen-x64.cc:10545: GenerateTypeTransition(masm); ...
10 years, 6 months ago (2010-06-18 13:40:33 UTC) #2
Lasse Reichstein
10 years, 6 months ago (2010-06-21 07:51:37 UTC) #3
http://codereview.chromium.org/2819012/diff/1/2
File src/x64/codegen-x64.cc (right):

http://codereview.chromium.org/2819012/diff/1/2#newcode10545
src/x64/codegen-x64.cc:10545: GenerateTypeTransition(masm);
Ick, I do believe it might make a runtime call (which will preserve r9, but may
cause a GC). I'll move initialization of r9 to after this.

http://codereview.chromium.org/2819012/diff/1/2#newcode10551
src/x64/codegen-x64.cc:10551: if (static_operands_type_.IsNumber() &&
FLAG_debug_code) {
Fixed.

http://codereview.chromium.org/2819012/diff/1/2#newcode10567
src/x64/codegen-x64.cc:10567: FloatingPointHelper::LoadFloatOperands(masm, xmm4,
xmm5);
I think Bill is working on this.

http://codereview.chromium.org/2819012/diff/1/2#newcode10589
src/x64/codegen-x64.cc:10589: // Allocate heap number in new space.
Added TODO to that effect. 
It should be done in the same rewrite as the "load float" changes.

http://codereview.chromium.org/2819012/diff/1/2#newcode10659
src/x64/codegen-x64.cc:10659: FloatingPointHelper::LoadAsIntegers(masm,
&call_runtime);
Avoided loading the map again. Leaving other changes for rewrite of
LoadAsInteger.

http://codereview.chromium.org/2819012/diff/1/2#newcode10682
src/x64/codegen-x64.cc:10682: if (op_ == Token::SHR) {
On 2010/06/18 13:40:34, Erik Corry wrote:
> How did the old version even work?

Easily. It went to slowcase on non-smi result of SHR, and the allocation code
was dead, since the non_smi_result label was only linked if op_ == Token::SHR.
I.e., it was a piece of crap.

Powered by Google App Engine
This is Rietveld 408576698