Lines Matching refs:pmc
137 int pmc, byte, unit, sh;
141 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
142 if (pmc) {
143 if (pmc > 6)
145 sh = (pmc - 1) * 2;
148 if (pmc >= 5 && !(event == 0x500009 || event == 0x600005))
179 if (pmc < 5) {
191 int pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
193 return pmc == 5 || pmc == 6;
245 int pmc, altpmc, pp, j;
247 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
248 if (pmc == 0 || pmc > 4)
250 altpmc = 5 - pmc; /* 1 <-> 4, 2 <-> 3 */
253 if (bytedecode_alternatives[pmc - 1][j] == pp) {
261 if (pmc == 1 && (pp == 0x0d || pp == 0x0e))
263 if (pmc == 3 && (pp == 0x2e || pp == 0x2f))
405 int pmc, psel;
409 pmc = (event >> PM_PMC_SH) & PM_PMC_MSK;
411 if (pmc >= 5)
416 if (direct_event_is_marked[psel] & (1 << pmc))
421 bit = pmc - 1;
423 bit = 4 - pmc;
424 else if (psel == 0x1b && (pmc == 1 || pmc == 3))
429 bit = pmc - 1;
430 } else if (pmc == 3 && (psel == 0x2e || psel == 0x2f)) {
459 unsigned int pmc, unit, byte, psel;
474 pmc = (event[i] >> PM_PMC_SH) & PM_PMC_MSK;
475 if (pmc) {
476 if (pmc > 6)
478 if (pmc_inuse & (1 << (pmc - 1)))
480 pmc_inuse |= 1 << (pmc - 1);
552 pmc = (event[i] >> PM_PMC_SH) & PM_PMC_MSK;
557 if (!pmc) {
559 for (pmc = 0; pmc < 4; ++pmc) {
560 if (!(pmc_inuse & (1 << pmc)))
563 if (pmc >= 4)
565 pmc_inuse |= 1 << pmc;
566 } else if (pmc <= 4) {
568 --pmc;
572 mmcr1 |= 1ul << (MMCR1_PMC1_ADDER_SEL_SH - pmc);
575 --pmc;
584 if ((psel & 0x58) == 0x40 && (byte & 1) != ((pmc >> 1) & 1))
587 if (pmc <= 3)
588 mmcr1 |= psel << MMCR1_PMCSEL_SH(pmc);
589 hwc[i] = pmc;
603 static void power5p_disable_pmc(unsigned int pmc, struct mmcr_regs *mmcr)
605 if (pmc <= 3)
606 mmcr->mmcr1 &= ~(0x7fUL << MMCR1_PMCSEL_SH(pmc));