| 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 518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 529 | 529 |
| 530 constant = target_pos - pc_offset(); | 530 constant = target_pos - pc_offset(); |
| 531 } | 531 } |
| 532 llilf(r1, Operand(constant)); | 532 llilf(r1, Operand(constant)); |
| 533 } | 533 } |
| 534 | 534 |
| 535 // Pseudo op - branch on condition | 535 // Pseudo op - branch on condition |
| 536 void Assembler::branchOnCond(Condition c, int branch_offset, bool is_bound) { | 536 void Assembler::branchOnCond(Condition c, int branch_offset, bool is_bound) { |
| 537 int offset_in_halfwords = branch_offset / 2; | 537 int offset_in_halfwords = branch_offset / 2; |
| 538 if (is_bound && is_int16(offset_in_halfwords)) { | 538 if (is_bound && is_int16(offset_in_halfwords)) { |
| 539 brc(c, Operand(offset_in_halfwords & 0xFFFF)); // short jump | 539 brc(c, Operand(offset_in_halfwords)); // short jump |
| 540 } else { | 540 } else { |
| 541 brcl(c, Operand(offset_in_halfwords)); // long jump | 541 brcl(c, Operand(offset_in_halfwords)); // long jump |
| 542 } | 542 } |
| 543 } | 543 } |
| 544 | 544 |
| 545 // 32-bit Store Multiple - short displacement (12-bits unsigned) | 545 // 32-bit Store Multiple - short displacement (12-bits unsigned) |
| 546 void Assembler::stm(Register r1, Register r2, const MemOperand& src) { | 546 void Assembler::stm(Register r1, Register r2, const MemOperand& src) { |
| 547 rs_form(STM, r1, r2, src.rb(), src.offset()); | 547 rs_form(STM, r1, r2, src.rb(), src.offset()); |
| 548 } | 548 } |
| 549 | 549 |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 640 // +--------+----+----+------------------+ | 640 // +--------+----+----+------------------+ |
| 641 // | OpCode | M1 |OpCd| I2 | | 641 // | OpCode | M1 |OpCd| I2 | |
| 642 // +--------+----+----+------------------+ | 642 // +--------+----+----+------------------+ |
| 643 // 0 8 12 16 31 | 643 // 0 8 12 16 31 |
| 644 #define RI2_FORM_EMIT(name, op) \ | 644 #define RI2_FORM_EMIT(name, op) \ |
| 645 void Assembler::name(Condition m, const Operand& i2) { ri_form(op, m, i2); } | 645 void Assembler::name(Condition m, const Operand& i2) { ri_form(op, m, i2); } |
| 646 | 646 |
| 647 void Assembler::ri_form(Opcode op, Condition m1, const Operand& i2) { | 647 void Assembler::ri_form(Opcode op, Condition m1, const Operand& i2) { |
| 648 DCHECK(is_uint12(op)); | 648 DCHECK(is_uint12(op)); |
| 649 DCHECK(is_uint4(m1)); | 649 DCHECK(is_uint4(m1)); |
| 650 DCHECK(is_uint16(i2.imm_)); | 650 DCHECK(op == BRC ? is_int16(i2.imm_) : is_uint16(i2.imm_)); |
| 651 emit4bytes((op & 0xFF0) * B20 | m1 * B20 | (op & 0xF) * B16 | | 651 emit4bytes((op & 0xFF0) * B20 | m1 * B20 | (op & 0xF) * B16 | |
| 652 (i2.imm_ & 0xFFFF)); | 652 (i2.imm_ & 0xFFFF)); |
| 653 } | 653 } |
| 654 | 654 |
| 655 // RIE-f format: <insn> R1,R2,I3,I4,I5 | 655 // RIE-f format: <insn> R1,R2,I3,I4,I5 |
| 656 // +--------+----+----+------------------+--------+--------+ | 656 // +--------+----+----+------------------+--------+--------+ |
| 657 // | OpCode | R1 | R2 | I3 | I4 | I5 | OpCode | | 657 // | OpCode | R1 | R2 | I3 | I4 | I5 | OpCode | |
| 658 // +--------+----+----+------------------+--------+--------+ | 658 // +--------+----+----+------------------+--------+--------+ |
| 659 // 0 8 12 16 24 32 40 47 | 659 // 0 8 12 16 24 32 40 47 |
| 660 void Assembler::rie_f_form(Opcode op, Register r1, Register r2, | 660 void Assembler::rie_f_form(Opcode op, Register r1, Register r2, |
| (...skipping 1979 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2640 SKIP_ICACHE_FLUSH); | 2640 SKIP_ICACHE_FLUSH); |
| 2641 } | 2641 } |
| 2642 | 2642 |
| 2643 reloc_info_writer.Write(&rinfo); | 2643 reloc_info_writer.Write(&rinfo); |
| 2644 } | 2644 } |
| 2645 } | 2645 } |
| 2646 | 2646 |
| 2647 } // namespace internal | 2647 } // namespace internal |
| 2648 } // namespace v8 | 2648 } // namespace v8 |
| 2649 #endif // V8_TARGET_ARCH_S390 | 2649 #endif // V8_TARGET_ARCH_S390 |
| OLD | NEW |