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 809 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
820 instr |= I | rotate_imm*B8 | immed_8; | 820 instr |= I | rotate_imm*B8 | immed_8; |
821 } else if (!x.rs_.is_valid()) { | 821 } else if (!x.rs_.is_valid()) { |
822 // Immediate shift. | 822 // Immediate shift. |
823 instr |= x.shift_imm_*B7 | x.shift_op_ | x.rm_.code(); | 823 instr |= x.shift_imm_*B7 | x.shift_op_ | x.rm_.code(); |
824 } else { | 824 } else { |
825 // Register shift. | 825 // Register shift. |
826 ASSERT(!rn.is(pc) && !rd.is(pc) && !x.rm_.is(pc) && !x.rs_.is(pc)); | 826 ASSERT(!rn.is(pc) && !rd.is(pc) && !x.rm_.is(pc) && !x.rs_.is(pc)); |
827 instr |= x.rs_.code()*B8 | x.shift_op_ | B4 | x.rm_.code(); | 827 instr |= x.rs_.code()*B8 | x.shift_op_ | B4 | x.rm_.code(); |
828 } | 828 } |
829 emit(instr | rn.code()*B16 | rd.code()*B12); | 829 emit(instr | rn.code()*B16 | rd.code()*B12); |
830 if (rn.is(pc) || x.rm_.is(pc)) | 830 if (rn.is(pc) || x.rm_.is(pc)) { |
831 // Block constant pool emission for one instruction after reading pc. | 831 // Block constant pool emission for one instruction after reading pc. |
832 BlockConstPoolBefore(pc_offset() + kInstrSize); | 832 BlockConstPoolBefore(pc_offset() + kInstrSize); |
| 833 } |
833 } | 834 } |
834 | 835 |
835 | 836 |
836 void Assembler::addrmod2(Instr instr, Register rd, const MemOperand& x) { | 837 void Assembler::addrmod2(Instr instr, Register rd, const MemOperand& x) { |
837 ASSERT((instr & ~(CondMask | B | L)) == B26); | 838 ASSERT((instr & ~(CondMask | B | L)) == B26); |
838 int am = x.am_; | 839 int am = x.am_; |
839 if (!x.rm_.is_valid()) { | 840 if (!x.rm_.is_valid()) { |
840 // Immediate offset. | 841 // Immediate offset. |
841 int offset_12 = x.offset_; | 842 int offset_12 = x.offset_; |
842 if (offset_12 < 0) { | 843 if (offset_12 < 0) { |
(...skipping 1727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2570 | 2571 |
2571 // Since a constant pool was just emitted, move the check offset forward by | 2572 // Since a constant pool was just emitted, move the check offset forward by |
2572 // the standard interval. | 2573 // the standard interval. |
2573 next_buffer_check_ = pc_offset() + kCheckConstInterval; | 2574 next_buffer_check_ = pc_offset() + kCheckConstInterval; |
2574 } | 2575 } |
2575 | 2576 |
2576 | 2577 |
2577 } } // namespace v8::internal | 2578 } } // namespace v8::internal |
2578 | 2579 |
2579 #endif // V8_TARGET_ARCH_ARM | 2580 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |