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

Issue 1860001: X64: Port inline transcendental cache to X64. (Closed)

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

Description

X64: Port inline transcendental cache to X64.

Patch Set 1 #

Total comments: 25
Unified diffs Side-by-side diffs Delta from patch set Stats (+352 lines, -22 lines) Patch
M src/x64/assembler-x64.h View 5 chunks +13 lines, -2 lines 0 comments Download
M src/x64/assembler-x64.cc View 3 chunks +59 lines, -0 lines 0 comments Download
M src/x64/assembler-x64-inl.h View 2 chunks +11 lines, -0 lines 0 comments Download
M src/x64/codegen-x64.h View 1 chunk +16 lines, -0 lines 0 comments Download
M src/x64/codegen-x64.cc View 2 chunks +218 lines, -6 lines 25 comments Download
M src/x64/disasm-x64.cc View 1 chunk +35 lines, -14 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Lasse Reichstein
Ported.
10 years, 7 months ago (2010-05-03 08:48:03 UTC) #1
Mads Ager (chromium)
LGTM http://codereview.chromium.org/1860001/diff/1/5 File src/x64/codegen-x64.cc (right): http://codereview.chromium.org/1860001/diff/1/5#newcode7404 src/x64/codegen-x64.cc:7404: // Test that eax is a number. eax ...
10 years, 7 months ago (2010-05-03 09:14:46 UTC) #2
Lasse Reichstein
10 years, 7 months ago (2010-05-03 10:33:44 UTC) #3
http://codereview.chromium.org/1860001/diff/1/5
File src/x64/codegen-x64.cc (right):

http://codereview.chromium.org/1860001/diff/1/5#newcode7404
src/x64/codegen-x64.cc:7404: // Test that eax is a number.
On 2010/05/03 09:14:46, Mads Ager wrote:
> eax -> rax
> 
> Move to after the label declarations?

Done.

http://codereview.chromium.org/1860001/diff/1/5#newcode7413
src/x64/codegen-x64.cc:7413: ASSERT_EQ(1, kSmiTagSize);
Removed.

http://codereview.chromium.org/1860001/diff/1/5#newcode7427
src/x64/codegen-x64.cc:7427: __ cmpq(rbx, FieldOperand(rax,
HeapObject::kMapOffset));
We can, but in this case I don't want to. Using the root array costs a load and
is somewhat shorter, but I'm afraid the load can't be hoisted very much since we
are just after a conditional jump target, so we will be introducing extra
latency.

http://codereview.chromium.org/1860001/diff/1/5#newcode7443
src/x64/codegen-x64.cc:7443: // or h = (h0 ^ (h0 >> 8) ^ (h0 >> 16) ^ (h0 >>
24)) & cacheSize - 1
On 2010/05/03 09:14:46, Mads Ager wrote:
> add parenthesis (cacheSize - 1)?

Done.

http://codereview.chromium.org/1860001/diff/1/5#newcode7469
src/x64/codegen-x64.cc:7469: {  // NOLINT - doesn't like a single brace on a
line.
It probably will, but I'd hate it instead. I'd rather remove the braces
entirely.

http://codereview.chromium.org/1860001/diff/1/5#newcode7485
src/x64/codegen-x64.cc:7485: __ lea(rcx, Operand(rax, rcx, times_8, 0));\
Whoops.

http://codereview.chromium.org/1860001/diff/1/5#newcode7497
src/x64/codegen-x64.cc:7497: // We are short on registers, so use no_reg as
scratch.
Removed.

http://codereview.chromium.org/1860001/diff/1/5#newcode7526
src/x64/codegen-x64.cc:7526: // Only free register is edi.
fixed.

http://codereview.chromium.org/1860001/diff/1/5#newcode7540
src/x64/codegen-x64.cc:7540: __ andl(rdi, Immediate(0x7ff));
Fixed.

http://codereview.chromium.org/1860001/diff/1/5#newcode7542
src/x64/codegen-x64.cc:7542: (63 + HeapNumber::kExponentBias);
On 2010/05/03 09:14:46, Mads Ager wrote:
> This will fit on line above?

Done.

http://codereview.chromium.org/1860001/diff/1/5#newcode7552
src/x64/codegen-x64.cc:7552: __ movq(rdi, static_cast<uint64_t>(0x7ff8)<<48,
RelocInfo::NONE);
On 2010/05/03 09:14:46, Mads Ager wrote:
> We should use a named constant for the nan representation.

Done.

http://codereview.chromium.org/1860001/diff/1/5#newcode7584
src/x64/codegen-x64.cc:7584: __ testl(rax, Immediate(0x400 /* C2 */));
C2 moved to comment.

http://codereview.chromium.org/1860001/diff/1/5#newcode7594
src/x64/codegen-x64.cc:7594: __ movq(rax, rdi);  // Restore eax (allocated
HeapNumber pointer).
eax->rax.

Powered by Google App Engine
This is Rietveld 408576698