| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 1278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1289 | 1289 |
| 1290 // Call the native; it returns -1 (less), 0 (equal), or 1 (greater) | 1290 // Call the native; it returns -1 (less), 0 (equal), or 1 (greater) |
| 1291 // tagged as a small integer. | 1291 // tagged as a small integer. |
| 1292 __ InvokeBuiltin(native, JUMP_JS); | 1292 __ InvokeBuiltin(native, JUMP_JS); |
| 1293 } | 1293 } |
| 1294 | 1294 |
| 1295 | 1295 |
| 1296 // This stub does not handle the inlined cases (Smis, Booleans, undefined). | 1296 // This stub does not handle the inlined cases (Smis, Booleans, undefined). |
| 1297 // The stub returns zero for false, and a non-zero value for true. | 1297 // The stub returns zero for false, and a non-zero value for true. |
| 1298 void ToBooleanStub::Generate(MacroAssembler* masm) { | 1298 void ToBooleanStub::Generate(MacroAssembler* masm) { |
| 1299 // This stub uses VFP3 instructions. |
| 1300 ASSERT(CpuFeatures::IsEnabled(VFP3)); |
| 1301 |
| 1299 Label false_result; | 1302 Label false_result; |
| 1300 Label not_heap_number; | 1303 Label not_heap_number; |
| 1301 Register scratch = r9.is(tos_) ? r7 : r9; | 1304 Register scratch = r9.is(tos_) ? r7 : r9; |
| 1302 | 1305 |
| 1303 __ LoadRoot(ip, Heap::kNullValueRootIndex); | 1306 __ LoadRoot(ip, Heap::kNullValueRootIndex); |
| 1304 __ cmp(tos_, ip); | 1307 __ cmp(tos_, ip); |
| 1305 __ b(eq, &false_result); | 1308 __ b(eq, &false_result); |
| 1306 | 1309 |
| 1307 // HeapNumber => false iff +0, -0, or NaN. | 1310 // HeapNumber => false iff +0, -0, or NaN. |
| 1308 __ ldr(scratch, FieldMemOperand(tos_, HeapObject::kMapOffset)); | 1311 __ ldr(scratch, FieldMemOperand(tos_, HeapObject::kMapOffset)); |
| (...skipping 4818 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6127 __ strb(untagged_value, MemOperand(external_pointer, untagged_key)); | 6130 __ strb(untagged_value, MemOperand(external_pointer, untagged_key)); |
| 6128 __ Ret(); | 6131 __ Ret(); |
| 6129 } | 6132 } |
| 6130 | 6133 |
| 6131 | 6134 |
| 6132 #undef __ | 6135 #undef __ |
| 6133 | 6136 |
| 6134 } } // namespace v8::internal | 6137 } } // namespace v8::internal |
| 6135 | 6138 |
| 6136 #endif // V8_TARGET_ARCH_ARM | 6139 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |