OLD | NEW |
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 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 679 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
690 } | 690 } |
691 | 691 |
692 | 692 |
693 void CodeGenerator::UnloadReference(Reference* ref) { | 693 void CodeGenerator::UnloadReference(Reference* ref) { |
694 // Pop a reference from the stack while preserving TOS. | 694 // Pop a reference from the stack while preserving TOS. |
695 Comment cmnt(masm_, "[ UnloadReference"); | 695 Comment cmnt(masm_, "[ UnloadReference"); |
696 frame_->Nip(ref->size()); | 696 frame_->Nip(ref->size()); |
697 } | 697 } |
698 | 698 |
699 | 699 |
700 class ToBooleanStub: public CodeStub { | |
701 public: | |
702 ToBooleanStub() { } | |
703 | |
704 void Generate(MacroAssembler* masm); | |
705 | |
706 private: | |
707 Major MajorKey() { return ToBoolean; } | |
708 int MinorKey() { return 0; } | |
709 }; | |
710 | |
711 | |
712 // ECMA-262, section 9.2, page 30: ToBoolean(). Pop the top of stack and | 700 // ECMA-262, section 9.2, page 30: ToBoolean(). Pop the top of stack and |
713 // convert it to a boolean in the condition code register or jump to | 701 // convert it to a boolean in the condition code register or jump to |
714 // 'false_target'/'true_target' as appropriate. | 702 // 'false_target'/'true_target' as appropriate. |
715 void CodeGenerator::ToBoolean(ControlDestination* dest) { | 703 void CodeGenerator::ToBoolean(ControlDestination* dest) { |
716 Comment cmnt(masm_, "[ ToBoolean"); | 704 Comment cmnt(masm_, "[ ToBoolean"); |
717 | 705 |
718 // The value to convert should be popped from the frame. | 706 // The value to convert should be popped from the frame. |
719 Result value = frame_->Pop(); | 707 Result value = frame_->Pop(); |
720 value.ToRegister(); | 708 value.ToRegister(); |
721 // Fast case checks. | 709 // Fast case checks. |
(...skipping 7358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8080 | 8068 |
8081 int CompareStub::MinorKey() { | 8069 int CompareStub::MinorKey() { |
8082 // Encode the two parameters in a unique 16 bit value. | 8070 // Encode the two parameters in a unique 16 bit value. |
8083 ASSERT(static_cast<unsigned>(cc_) < (1 << 15)); | 8071 ASSERT(static_cast<unsigned>(cc_) < (1 << 15)); |
8084 return (static_cast<unsigned>(cc_) << 1) | (strict_ ? 1 : 0); | 8072 return (static_cast<unsigned>(cc_) << 1) | (strict_ ? 1 : 0); |
8085 } | 8073 } |
8086 | 8074 |
8087 #undef __ | 8075 #undef __ |
8088 | 8076 |
8089 } } // namespace v8::internal | 8077 } } // namespace v8::internal |
OLD | NEW |