OLD | NEW |
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. |
2 // All Rights Reserved. | 2 // All Rights Reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions | 5 // modification, are permitted provided that the following conditions |
6 // are met: | 6 // are met: |
7 // | 7 // |
8 // - Redistributions of source code must retain the above copyright notice, | 8 // - Redistributions of source code must retain the above copyright notice, |
9 // this list of conditions and the following disclaimer. | 9 // this list of conditions and the following disclaimer. |
10 // | 10 // |
(...skipping 2467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2478 DCHECK(!base.is(pc)); | 2478 DCHECK(!base.is(pc)); |
2479 | 2479 |
2480 int sd, d; | 2480 int sd, d; |
2481 first.split_code(&sd, &d); | 2481 first.split_code(&sd, &d); |
2482 int count = last.code() - first.code() + 1; | 2482 int count = last.code() - first.code() + 1; |
2483 emit(cond | B27 | B26 | am | d*B22 | base.code()*B16 | sd*B12 | | 2483 emit(cond | B27 | B26 | am | d*B22 | base.code()*B16 | sd*B12 | |
2484 0xA*B8 | count); | 2484 0xA*B8 | count); |
2485 } | 2485 } |
2486 | 2486 |
2487 | 2487 |
| 2488 void Assembler::vmov(const SwVfpRegister dst, float imm) { |
| 2489 mov(ip, Operand(bit_cast<int32_t>(imm))); |
| 2490 vmov(dst, ip); |
| 2491 } |
| 2492 |
| 2493 |
2488 static void DoubleAsTwoUInt32(double d, uint32_t* lo, uint32_t* hi) { | 2494 static void DoubleAsTwoUInt32(double d, uint32_t* lo, uint32_t* hi) { |
2489 uint64_t i; | 2495 uint64_t i; |
2490 memcpy(&i, &d, 8); | 2496 memcpy(&i, &d, 8); |
2491 | 2497 |
2492 *lo = i & 0xffffffff; | 2498 *lo = i & 0xffffffff; |
2493 *hi = i >> 32; | 2499 *hi = i >> 32; |
2494 } | 2500 } |
2495 | 2501 |
2496 | 2502 |
2497 // Only works for little endian floating point formats. | 2503 // Only works for little endian floating point formats. |
(...skipping 1467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3965 assm->instr_at_put( | 3971 assm->instr_at_put( |
3966 rinfo.pc(), Assembler::SetLdrRegisterImmediateOffset(instr, offset)); | 3972 rinfo.pc(), Assembler::SetLdrRegisterImmediateOffset(instr, offset)); |
3967 } | 3973 } |
3968 } | 3974 } |
3969 } | 3975 } |
3970 | 3976 |
3971 | 3977 |
3972 } } // namespace v8::internal | 3978 } } // namespace v8::internal |
3973 | 3979 |
3974 #endif // V8_TARGET_ARCH_ARM | 3980 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |