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 are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // 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 1635 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1646 // Shifts. | 1646 // Shifts. |
1647 void Assembler::sll(Register rd, | 1647 void Assembler::sll(Register rd, |
1648 Register rt, | 1648 Register rt, |
1649 uint16_t sa, | 1649 uint16_t sa, |
1650 bool coming_from_nop) { | 1650 bool coming_from_nop) { |
1651 // Don't allow nop instructions in the form sll zero_reg, zero_reg to be | 1651 // Don't allow nop instructions in the form sll zero_reg, zero_reg to be |
1652 // generated using the sll instruction. They must be generated using | 1652 // generated using the sll instruction. They must be generated using |
1653 // nop(int/NopMarkerTypes) or MarkCode(int/NopMarkerTypes) pseudo | 1653 // nop(int/NopMarkerTypes) or MarkCode(int/NopMarkerTypes) pseudo |
1654 // instructions. | 1654 // instructions. |
1655 DCHECK(coming_from_nop || !(rd.is(zero_reg) && rt.is(zero_reg))); | 1655 DCHECK(coming_from_nop || !(rd.is(zero_reg) && rt.is(zero_reg))); |
1656 GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa, SLL); | 1656 GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa & 0x1F, SLL); |
1657 } | 1657 } |
1658 | 1658 |
1659 | 1659 |
1660 void Assembler::sllv(Register rd, Register rt, Register rs) { | 1660 void Assembler::sllv(Register rd, Register rt, Register rs) { |
1661 GenInstrRegister(SPECIAL, rs, rt, rd, 0, SLLV); | 1661 GenInstrRegister(SPECIAL, rs, rt, rd, 0, SLLV); |
1662 } | 1662 } |
1663 | 1663 |
1664 | 1664 |
1665 void Assembler::srl(Register rd, Register rt, uint16_t sa) { | 1665 void Assembler::srl(Register rd, Register rt, uint16_t sa) { |
1666 GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa, SRL); | 1666 GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa & 0x1F, SRL); |
1667 } | 1667 } |
1668 | 1668 |
1669 | 1669 |
1670 void Assembler::srlv(Register rd, Register rt, Register rs) { | 1670 void Assembler::srlv(Register rd, Register rt, Register rs) { |
1671 GenInstrRegister(SPECIAL, rs, rt, rd, 0, SRLV); | 1671 GenInstrRegister(SPECIAL, rs, rt, rd, 0, SRLV); |
1672 } | 1672 } |
1673 | 1673 |
1674 | 1674 |
1675 void Assembler::sra(Register rd, Register rt, uint16_t sa) { | 1675 void Assembler::sra(Register rd, Register rt, uint16_t sa) { |
1676 GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa, SRA); | 1676 GenInstrRegister(SPECIAL, zero_reg, rt, rd, sa & 0x1F, SRA); |
1677 } | 1677 } |
1678 | 1678 |
1679 | 1679 |
1680 void Assembler::srav(Register rd, Register rt, Register rs) { | 1680 void Assembler::srav(Register rd, Register rt, Register rs) { |
1681 GenInstrRegister(SPECIAL, rs, rt, rd, 0, SRAV); | 1681 GenInstrRegister(SPECIAL, rs, rt, rd, 0, SRAV); |
1682 } | 1682 } |
1683 | 1683 |
1684 | 1684 |
1685 void Assembler::rotr(Register rd, Register rt, uint16_t sa) { | 1685 void Assembler::rotr(Register rd, Register rt, uint16_t sa) { |
1686 // Should be called via MacroAssembler::Ror. | 1686 // Should be called via MacroAssembler::Ror. |
(...skipping 1361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3048 | 3048 |
3049 if (icache_flush_mode != SKIP_ICACHE_FLUSH) { | 3049 if (icache_flush_mode != SKIP_ICACHE_FLUSH) { |
3050 Assembler::FlushICacheWithoutIsolate(pc, 2 * sizeof(int32_t)); | 3050 Assembler::FlushICacheWithoutIsolate(pc, 2 * sizeof(int32_t)); |
3051 } | 3051 } |
3052 } | 3052 } |
3053 | 3053 |
3054 } // namespace internal | 3054 } // namespace internal |
3055 } // namespace v8 | 3055 } // namespace v8 |
3056 | 3056 |
3057 #endif // V8_TARGET_ARCH_MIPS | 3057 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |