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. http://codereview.chromium.org/2819012/show -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
