macromem.cc (7639:8c09b7ff5b57) macromem.cc (7646:a444dbee8c07)
1/*
2 * Copyright (c) 2010 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 171 unchanged lines hidden (view full) ---

180 size, machInst, rMid, rn, 0, align);
181 break;
182 default:
183 panic("Unrecognized number of registers %d.\n", regs);
184 }
185 if (wb) {
186 if (rm != 15 && rm != 13) {
187 microOps[uopIdx++] =
1/*
2 * Copyright (c) 2010 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 171 unchanged lines hidden (view full) ---

180 size, machInst, rMid, rn, 0, align);
181 break;
182 default:
183 panic("Unrecognized number of registers %d.\n", regs);
184 }
185 if (wb) {
186 if (rm != 15 && rm != 13) {
187 microOps[uopIdx++] =
188 new MicroAddUop(machInst, rn, rn, rm);
188 new MicroAddUop(machInst, rn, rn, rm, 0, ArmISA::LSL);
189 } else {
190 microOps[uopIdx++] =
191 new MicroAddiUop(machInst, rn, rn, regs * 8);
192 }
193 }
194 if (deinterleave) {
195 switch (elems) {
196 case 4:

--- 118 unchanged lines hidden (view full) ---

315 machInst, ufp0, rn, 0, align);
316 break;
317 default:
318 panic("Unrecognized load size %d.\n", regs);
319 }
320 if (wb) {
321 if (rm != 15 && rm != 13) {
322 microOps[uopIdx++] =
189 } else {
190 microOps[uopIdx++] =
191 new MicroAddiUop(machInst, rn, rn, regs * 8);
192 }
193 }
194 if (deinterleave) {
195 switch (elems) {
196 case 4:

--- 118 unchanged lines hidden (view full) ---

315 machInst, ufp0, rn, 0, align);
316 break;
317 default:
318 panic("Unrecognized load size %d.\n", regs);
319 }
320 if (wb) {
321 if (rm != 15 && rm != 13) {
322 microOps[uopIdx++] =
323 new MicroAddUop(machInst, rn, rn, rm);
323 new MicroAddUop(machInst, rn, rn, rm, 0, ArmISA::LSL);
324 } else {
325 microOps[uopIdx++] =
326 new MicroAddiUop(machInst, rn, rn, loadSize);
327 }
328 }
329 switch (elems) {
330 case 4:
331 assert(regs == 4);

--- 229 unchanged lines hidden (view full) ---

561 size, machInst, rMid, rn, 0, align);
562 break;
563 default:
564 panic("Unrecognized number of registers %d.\n", regs);
565 }
566 if (wb) {
567 if (rm != 15 && rm != 13) {
568 microOps[uopIdx++] =
324 } else {
325 microOps[uopIdx++] =
326 new MicroAddiUop(machInst, rn, rn, loadSize);
327 }
328 }
329 switch (elems) {
330 case 4:
331 assert(regs == 4);

--- 229 unchanged lines hidden (view full) ---

561 size, machInst, rMid, rn, 0, align);
562 break;
563 default:
564 panic("Unrecognized number of registers %d.\n", regs);
565 }
566 if (wb) {
567 if (rm != 15 && rm != 13) {
568 microOps[uopIdx++] =
569 new MicroAddUop(machInst, rn, rn, rm);
569 new MicroAddUop(machInst, rn, rn, rm, 0, ArmISA::LSL);
570 } else {
571 microOps[uopIdx++] =
572 new MicroAddiUop(machInst, rn, rn, regs * 8);
573 }
574 }
575 assert(uopIdx == numMicroops);
576
577 for (unsigned i = 0; i < numMicroops - 1; i++) {

--- 179 unchanged lines hidden (view full) ---

757 machInst, ufp0, rn, 0, align);
758 break;
759 default:
760 panic("Unrecognized store size %d.\n", regs);
761 }
762 if (wb) {
763 if (rm != 15 && rm != 13) {
764 microOps[uopIdx++] =
570 } else {
571 microOps[uopIdx++] =
572 new MicroAddiUop(machInst, rn, rn, regs * 8);
573 }
574 }
575 assert(uopIdx == numMicroops);
576
577 for (unsigned i = 0; i < numMicroops - 1; i++) {

--- 179 unchanged lines hidden (view full) ---

757 machInst, ufp0, rn, 0, align);
758 break;
759 default:
760 panic("Unrecognized store size %d.\n", regs);
761 }
762 if (wb) {
763 if (rm != 15 && rm != 13) {
764 microOps[uopIdx++] =
765 new MicroAddUop(machInst, rn, rn, rm);
765 new MicroAddUop(machInst, rn, rn, rm, 0, ArmISA::LSL);
766 } else {
767 microOps[uopIdx++] =
768 new MicroAddiUop(machInst, rn, rn, storeSize);
769 }
770 }
771 assert(uopIdx == numMicroops);
772
773 for (unsigned i = 0; i < numMicroops - 1; i++) {

--- 99 unchanged lines hidden (view full) ---

873 ss << ", ";
874 printReg(ss, urb);
875 ss << ", ";
876 ccprintf(ss, "#%d", imm);
877 return ss.str();
878}
879
880std::string
766 } else {
767 microOps[uopIdx++] =
768 new MicroAddiUop(machInst, rn, rn, storeSize);
769 }
770 }
771 assert(uopIdx == numMicroops);
772
773 for (unsigned i = 0; i < numMicroops - 1; i++) {

--- 99 unchanged lines hidden (view full) ---

873 ss << ", ";
874 printReg(ss, urb);
875 ss << ", ";
876 ccprintf(ss, "#%d", imm);
877 return ss.str();
878}
879
880std::string
881MicroIntMov::generateDisassembly(Addr pc, const SymbolTable *symtab) const
882{
883 std::stringstream ss;
884 printMnemonic(ss);
885 printReg(ss, ura);
886 ss << ", ";
887 printReg(ss, urb);
888 return ss.str();
889}
890
891std::string
881MicroIntOp::generateDisassembly(Addr pc, const SymbolTable *symtab) const
882{
883 std::stringstream ss;
884 printMnemonic(ss);
885 printReg(ss, ura);
886 ss << ", ";
887 printReg(ss, urb);
888 ss << ", ";

--- 19 unchanged lines hidden ---
892MicroIntOp::generateDisassembly(Addr pc, const SymbolTable *symtab) const
893{
894 std::stringstream ss;
895 printMnemonic(ss);
896 printReg(ss, ura);
897 ss << ", ";
898 printReg(ss, urb);
899 ss << ", ";

--- 19 unchanged lines hidden ---