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

Side by Side Diff: src/ia32/full-codegen-ia32.cc

Issue 6452001: Allow esi to be an allocatable register on IA32. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 Register src, 607 Register src,
608 Register scratch1, 608 Register scratch1,
609 Register scratch2) { 609 Register scratch2) {
610 ASSERT(dst->type() != Slot::LOOKUP); // Not yet implemented. 610 ASSERT(dst->type() != Slot::LOOKUP); // Not yet implemented.
611 ASSERT(!scratch1.is(src) && !scratch2.is(src)); 611 ASSERT(!scratch1.is(src) && !scratch2.is(src));
612 MemOperand location = EmitSlotSearch(dst, scratch1); 612 MemOperand location = EmitSlotSearch(dst, scratch1);
613 __ mov(location, src); 613 __ mov(location, src);
614 // Emit the write barrier code if the location is in the heap. 614 // Emit the write barrier code if the location is in the heap.
615 if (dst->type() == Slot::CONTEXT) { 615 if (dst->type() == Slot::CONTEXT) {
616 int offset = Context::SlotOffset(dst->index()); 616 int offset = Context::SlotOffset(dst->index());
617 ASSERT(!scratch1.is(esi) && !src.is(esi) && !scratch2.is(esi));
617 __ RecordWrite(scratch1, offset, src, scratch2); 618 __ RecordWrite(scratch1, offset, src, scratch2);
618 } 619 }
619 } 620 }
620 621
621 622
622 void FullCodeGenerator::PrepareForBailoutBeforeSplit(State state, 623 void FullCodeGenerator::PrepareForBailoutBeforeSplit(State state,
623 bool should_normalize, 624 bool should_normalize,
624 Label* if_true, 625 Label* if_true,
625 Label* if_false) { 626 Label* if_false) {
626 // Only prepare for bailouts before splits if we're in a test 627 // Only prepare for bailouts before splits if we're in a test
(...skipping 3765 matching lines...) Expand 10 before | Expand all | Expand 10 after
4392 // And return. 4393 // And return.
4393 __ ret(0); 4394 __ ret(0);
4394 } 4395 }
4395 4396
4396 4397
4397 #undef __ 4398 #undef __
4398 4399
4399 } } // namespace v8::internal 4400 } } // namespace v8::internal
4400 4401
4401 #endif // V8_TARGET_ARCH_IA32 4402 #endif // V8_TARGET_ARCH_IA32
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698