| OLD | NEW |
| 1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 7576 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7587 right_res.Unuse(); | 7587 right_res.Unuse(); |
| 7588 left_res.Unuse(); | 7588 left_res.Unuse(); |
| 7589 tmp_res.Unuse(); | 7589 tmp_res.Unuse(); |
| 7590 __ cmp(left, Operand(right)); | 7590 __ cmp(left, Operand(right)); |
| 7591 destination()->true_target()->Branch(equal); | 7591 destination()->true_target()->Branch(equal); |
| 7592 // Fail if either is a non-HeapObject. | 7592 // Fail if either is a non-HeapObject. |
| 7593 __ mov(tmp, left); | 7593 __ mov(tmp, left); |
| 7594 __ and_(Operand(tmp), right); | 7594 __ and_(Operand(tmp), right); |
| 7595 __ test(Operand(tmp), Immediate(kSmiTagMask)); | 7595 __ test(Operand(tmp), Immediate(kSmiTagMask)); |
| 7596 destination()->false_target()->Branch(equal); | 7596 destination()->false_target()->Branch(equal); |
| 7597 __ mov(tmp, FieldOperand(left, HeapObject::kMapOffset)); | 7597 __ CmpObjectType(left, JS_REGEXP_TYPE, tmp); |
| 7598 __ cmpb(FieldOperand(tmp, Map::kInstanceTypeOffset), | |
| 7599 static_cast<int8_t>(JS_REGEXP_TYPE)); | |
| 7600 destination()->false_target()->Branch(not_equal); | 7598 destination()->false_target()->Branch(not_equal); |
| 7601 __ cmp(tmp, FieldOperand(right, HeapObject::kMapOffset)); | 7599 __ cmp(tmp, FieldOperand(right, HeapObject::kMapOffset)); |
| 7602 destination()->false_target()->Branch(not_equal); | 7600 destination()->false_target()->Branch(not_equal); |
| 7603 __ mov(tmp, FieldOperand(left, JSRegExp::kDataOffset)); | 7601 __ mov(tmp, FieldOperand(left, JSRegExp::kDataOffset)); |
| 7604 __ cmp(tmp, FieldOperand(right, JSRegExp::kDataOffset)); | 7602 __ cmp(tmp, FieldOperand(right, JSRegExp::kDataOffset)); |
| 7605 destination()->Split(equal); | 7603 destination()->Split(equal); |
| 7606 } | 7604 } |
| 7607 | 7605 |
| 7608 | 7606 |
| 7609 void CodeGenerator::VisitCallRuntime(CallRuntime* node) { | 7607 void CodeGenerator::VisitCallRuntime(CallRuntime* node) { |
| (...skipping 6430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14040 masm.GetCode(&desc); | 14038 masm.GetCode(&desc); |
| 14041 // Call the function from C++. | 14039 // Call the function from C++. |
| 14042 return FUNCTION_CAST<MemCopyFunction>(buffer); | 14040 return FUNCTION_CAST<MemCopyFunction>(buffer); |
| 14043 } | 14041 } |
| 14044 | 14042 |
| 14045 #undef __ | 14043 #undef __ |
| 14046 | 14044 |
| 14047 } } // namespace v8::internal | 14045 } } // namespace v8::internal |
| 14048 | 14046 |
| 14049 #endif // V8_TARGET_ARCH_IA32 | 14047 #endif // V8_TARGET_ARCH_IA32 |
| OLD | NEW |