OLD | NEW |
1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 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 3895 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3906 | 3906 |
3907 Load(args->at(0)); | 3907 Load(args->at(0)); |
3908 Load(args->at(1)); | 3908 Load(args->at(1)); |
3909 Load(args->at(2)); | 3909 Load(args->at(2)); |
3910 | 3910 |
3911 Result answer = frame_->CallRuntime(Runtime::kSubString, 3); | 3911 Result answer = frame_->CallRuntime(Runtime::kSubString, 3); |
3912 frame_->Push(&answer); | 3912 frame_->Push(&answer); |
3913 } | 3913 } |
3914 | 3914 |
3915 | 3915 |
| 3916 void CodeGenerator::GenerateStringCompare(ZoneList<Expression*>* args) { |
| 3917 ASSERT_EQ(2, args->length()); |
| 3918 |
| 3919 Load(args->at(0)); |
| 3920 Load(args->at(1)); |
| 3921 |
| 3922 Result answer = frame_->CallRuntime(Runtime::kStringCompare, 2); |
| 3923 frame_->Push(&answer); |
| 3924 } |
| 3925 |
| 3926 |
3916 void CodeGenerator::GenerateClassOf(ZoneList<Expression*>* args) { | 3927 void CodeGenerator::GenerateClassOf(ZoneList<Expression*>* args) { |
3917 ASSERT(args->length() == 1); | 3928 ASSERT(args->length() == 1); |
3918 JumpTarget leave, null, function, non_function_constructor; | 3929 JumpTarget leave, null, function, non_function_constructor; |
3919 Load(args->at(0)); // Load the object. | 3930 Load(args->at(0)); // Load the object. |
3920 Result obj = frame_->Pop(); | 3931 Result obj = frame_->Pop(); |
3921 obj.ToRegister(); | 3932 obj.ToRegister(); |
3922 frame_->Spill(obj.reg()); | 3933 frame_->Spill(obj.reg()); |
3923 | 3934 |
3924 // If the object is a smi, we return null. | 3935 // If the object is a smi, we return null. |
3925 Condition is_smi = masm_->CheckSmi(obj.reg()); | 3936 Condition is_smi = masm_->CheckSmi(obj.reg()); |
(...skipping 4186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8112 masm.GetCode(&desc); | 8123 masm.GetCode(&desc); |
8113 // Call the function from C++. | 8124 // Call the function from C++. |
8114 return FUNCTION_CAST<ModuloFunction>(buffer); | 8125 return FUNCTION_CAST<ModuloFunction>(buffer); |
8115 } | 8126 } |
8116 | 8127 |
8117 #endif | 8128 #endif |
8118 | 8129 |
8119 #undef __ | 8130 #undef __ |
8120 | 8131 |
8121 } } // namespace v8::internal | 8132 } } // namespace v8::internal |
OLD | NEW |