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

Side by Side Diff: src/macro-assembler-ia32.cc

Issue 13746: Experimental: thread live register references to deferred code.... (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/toiger/
Patch Set: '' Created 12 years 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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 585 matching lines...) Expand 10 before | Expand all | Expand 10 after
596 Context::SECURITY_TOKEN_INDEX * kPointerSize; 596 Context::SECURITY_TOKEN_INDEX * kPointerSize;
597 mov(scratch, FieldOperand(scratch, token_offset)); 597 mov(scratch, FieldOperand(scratch, token_offset));
598 cmp(scratch, FieldOperand(holder_reg, token_offset)); 598 cmp(scratch, FieldOperand(holder_reg, token_offset));
599 pop(holder_reg); 599 pop(holder_reg);
600 j(not_equal, miss, not_taken); 600 j(not_equal, miss, not_taken);
601 601
602 bind(&same_contexts); 602 bind(&same_contexts);
603 } 603 }
604 604
605 605
606 void MacroAssembler::NegativeZeroTest(CodeGenerator* cgen,
607 Register result,
608 Register op,
609 JumpTarget* then_target) {
610 JumpTarget ok(cgen);
611 test(result, Operand(result));
612 ok.Branch(not_zero, taken);
613 test(op, Operand(op));
614 then_target->Branch(sign, not_taken);
615 ok.Bind();
616 }
617
618
619 void MacroAssembler::NegativeZeroTest(Register result, 606 void MacroAssembler::NegativeZeroTest(Register result,
620 Register op, 607 Register op,
621 Label* then_label) { 608 Label* then_label) {
609 // Because this function is called from the code generator (with its own
610 // register allocator), it should not use registers other than result and
611 // op, and should not push or pop from the stack.
622 Label ok; 612 Label ok;
623 test(result, Operand(result)); 613 test(result, Operand(result));
624 j(not_zero, &ok, taken); 614 j(not_zero, &ok, taken);
625 test(op, Operand(op)); 615 test(op, Operand(op));
626 j(sign, then_label, not_taken); 616 j(sign, then_label, not_taken);
627 bind(&ok); 617 bind(&ok);
628 } 618 }
629 619
630 620
631 void MacroAssembler::NegativeZeroTest(Register result, 621 void MacroAssembler::NegativeZeroTest(Register result,
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
1022 // Indicate that code has changed. 1012 // Indicate that code has changed.
1023 CPU::FlushICache(address_, size_); 1013 CPU::FlushICache(address_, size_);
1024 1014
1025 // Check that the code was patched as expected. 1015 // Check that the code was patched as expected.
1026 ASSERT(masm_.pc_ == address_ + size_); 1016 ASSERT(masm_.pc_ == address_ + size_);
1027 ASSERT(masm_.reloc_info_writer.pos() == address_ + size_ + Assembler::kGap); 1017 ASSERT(masm_.reloc_info_writer.pos() == address_ + size_ + Assembler::kGap);
1028 } 1018 }
1029 1019
1030 1020
1031 } } // namespace v8::internal 1021 } } // namespace v8::internal
OLDNEW
« src/codegen-ia32.cc ('K') | « src/jump-target-arm.cc ('k') | src/register-allocator-ia32.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698