| 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 1553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1564 | 1564 |
| 1565 void Assembler::udiv(Register dst, Register src1, Register src2, | 1565 void Assembler::udiv(Register dst, Register src1, Register src2, |
| 1566 Condition cond) { | 1566 Condition cond) { |
| 1567 DCHECK(!dst.is(pc) && !src1.is(pc) && !src2.is(pc)); | 1567 DCHECK(!dst.is(pc) && !src1.is(pc) && !src2.is(pc)); |
| 1568 DCHECK(IsEnabled(SUDIV)); | 1568 DCHECK(IsEnabled(SUDIV)); |
| 1569 emit(cond | B26 | B25 | B24 | B21 | B20 | dst.code() * B16 | 0xf * B12 | | 1569 emit(cond | B26 | B25 | B24 | B21 | B20 | dst.code() * B16 | 0xf * B12 | |
| 1570 src2.code() * B8 | B4 | src1.code()); | 1570 src2.code() * B8 | B4 | src1.code()); |
| 1571 } | 1571 } |
| 1572 | 1572 |
| 1573 | 1573 |
| 1574 void Assembler::mul(Register dst, Register src1, Register src2, | 1574 void Assembler::mul(Register dst, Register src1, Register src2, SBit s, |
| 1575 SBit s, Condition cond) { | 1575 Condition cond) { |
| 1576 DCHECK(!dst.is(pc) && !src1.is(pc) && !src2.is(pc)); | 1576 DCHECK(!dst.is(pc) && !src1.is(pc) && !src2.is(pc)); |
| 1577 // dst goes in bits 16-19 for this instruction! | 1577 // dst goes in bits 16-19 for this instruction! |
| 1578 emit(cond | s | dst.code()*B16 | src2.code()*B8 | B7 | B4 | src1.code()); | 1578 emit(cond | s | dst.code() * B16 | src2.code() * B8 | B7 | B4 | src1.code()); |
| 1579 } | 1579 } |
| 1580 | 1580 |
| 1581 | 1581 |
| 1582 void Assembler::smmla(Register dst, Register src1, Register src2, Register srcA, |
| 1583 Condition cond) { |
| 1584 DCHECK(!dst.is(pc) && !src1.is(pc) && !src2.is(pc) && !srcA.is(pc)); |
| 1585 emit(cond | B26 | B25 | B24 | B22 | B20 | dst.code() * B16 | |
| 1586 srcA.code() * B12 | src2.code() * B8 | B4 | src1.code()); |
| 1587 } |
| 1588 |
| 1589 |
| 1590 void Assembler::smmls(Register dst, Register src1, Register src2, Register srcA, |
| 1591 Condition cond) { |
| 1592 DCHECK(!dst.is(pc) && !src1.is(pc) && !src2.is(pc) && !srcA.is(pc)); |
| 1593 emit(cond | B26 | B25 | B24 | B22 | B20 | dst.code() * B16 | |
| 1594 srcA.code() * B12 | src2.code() * B8 | B7 | B6 | B4 | src1.code()); |
| 1595 } |
| 1596 |
| 1597 |
| 1598 void Assembler::smmul(Register dst, Register src1, Register src2, |
| 1599 Condition cond) { |
| 1600 DCHECK(!dst.is(pc) && !src1.is(pc) && !src2.is(pc)); |
| 1601 emit(cond | B26 | B25 | B24 | B22 | B20 | dst.code() * B16 | 0xf * B12 | |
| 1602 src2.code() * B8 | B4 | src1.code()); |
| 1603 } |
| 1604 |
| 1605 |
| 1582 void Assembler::smlal(Register dstL, | 1606 void Assembler::smlal(Register dstL, |
| 1583 Register dstH, | 1607 Register dstH, |
| 1584 Register src1, | 1608 Register src1, |
| 1585 Register src2, | 1609 Register src2, |
| 1586 SBit s, | 1610 SBit s, |
| 1587 Condition cond) { | 1611 Condition cond) { |
| 1588 DCHECK(!dstL.is(pc) && !dstH.is(pc) && !src1.is(pc) && !src2.is(pc)); | 1612 DCHECK(!dstL.is(pc) && !dstH.is(pc) && !src1.is(pc) && !src2.is(pc)); |
| 1589 DCHECK(!dstL.is(dstH)); | 1613 DCHECK(!dstL.is(dstH)); |
| 1590 emit(cond | B23 | B22 | A | s | dstH.code()*B16 | dstL.code()*B12 | | 1614 emit(cond | B23 | B22 | A | s | dstH.code()*B16 | dstL.code()*B12 | |
| 1591 src2.code()*B8 | B7 | B4 | src1.code()); | 1615 src2.code()*B8 | B7 | B4 | src1.code()); |
| (...skipping 2243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3835 assm->instr_at_put( | 3859 assm->instr_at_put( |
| 3836 rinfo.pc(), Assembler::SetLdrRegisterImmediateOffset(instr, offset)); | 3860 rinfo.pc(), Assembler::SetLdrRegisterImmediateOffset(instr, offset)); |
| 3837 } | 3861 } |
| 3838 } | 3862 } |
| 3839 } | 3863 } |
| 3840 | 3864 |
| 3841 | 3865 |
| 3842 } } // namespace v8::internal | 3866 } } // namespace v8::internal |
| 3843 | 3867 |
| 3844 #endif // V8_TARGET_ARCH_ARM | 3868 #endif // V8_TARGET_ARCH_ARM |
| OLD | NEW |