| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |