1450{
1451#ifndef __ia64__
1452 ( void ) native_pfm_index;
1453 ( void ) flags;
1454#endif
1455 SUBDBG(
"process_smpl_entry(%d,%d,%p,%p)\n", native_pfm_index, flags, ent,
1456 pc );
1457
1458#ifdef __ia64__
1459
1460 if ( is_montecito_and_dear( native_pfm_index ) ) {
1464 unsigned long newent;
1465
1467 goto safety;
1468
1469
1470 ++( *ent );
1471
1472
1473
1474
1476 latency =
1478 sizeof ( data_addr ) );
1479 load_addr =
1481 sizeof ( data_addr ) +
1482 sizeof ( latency ) );
1483
1484 SUBDBG(
"PMD[32]: %#016llx\n",
1485 (
unsigned long long ) data_addr.
pmd_val );
1486 SUBDBG(
"PMD[33]: %#016llx\n",
1487 (
unsigned long long ) latency.
pmd_val );
1488 SUBDBG(
"PMD[36]: %#016llx\n",
1489 (
unsigned long long ) load_addr.
pmd_val );
1490
1494 ( "Invalid DEAR sample found, dear_vl = %d, dear_stat = %#x\n",
1497 bail1:
1498 newent = (
unsigned long ) *ent;
1501 return 0;
1502 }
1503
1510 dear_bn ) << 4 ) | ( unsigned long ) load_addr.
1513 } else {
1515 goto bail1;
1516 }
1517
1518 newent = (
unsigned long ) *ent;
1521 return 0;
1522 } else if ( is_montecito_and_iear( native_pfm_index ) ) {
1525 unsigned long newent;
1526
1528 goto safety;
1529
1530
1531 ++( *ent );
1532
1533
1534
1536 latency =
1538 sizeof ( icache_line_addr ) );
1539
1540 SUBDBG(
"PMD[34]: %#016llx\n",
1541 (
unsigned long long ) icache_line_addr.
pmd_val );
1542 SUBDBG(
"PMD[35]: %#016llx\n",
1543 (
unsigned long long ) latency.
pmd_val );
1544
1546 SUBDBG(
"Invalid IEAR sample found, iear_stat = %#x\n",
1548 bail2:
1549 newent = (
unsigned long ) *ent;
1552 return ( 0 );
1553 }
1554
1558 } else {
1560 goto bail2;
1561 }
1562
1563 newent = (
unsigned long ) *ent;
1566 return 0;
1567 } else if ( is_itanium2_and_dear( native_pfm_index ) ) {
1571 unsigned long newent;
1572
1574 goto safety;
1575
1576
1577 ++( *ent );
1578
1579
1580
1581
1583 latency =
1585 sizeof ( data_addr ) );
1586 load_addr =
1588 sizeof ( data_addr ) +
1589 sizeof ( latency ) );
1590
1591 SUBDBG(
"PMD[2]: %#016llx\n",
1592 (
unsigned long long ) data_addr.
pmd_val );
1593 SUBDBG(
"PMD[3]: %#016llx\n", (
unsigned long long ) latency.
pmd_val );
1594 SUBDBG(
"PMD[17]: %#016llx\n",
1595 (
unsigned long long ) load_addr.
pmd_val );
1596
1600 ( "Invalid DEAR sample found, dear_vl = %d, dear_stat = %#x\n",
1603 bail3:
1604 newent = (
unsigned long ) *ent;
1607 return 0;
1608 }
1609
1616 dear_bn ) << 4 ) | ( unsigned long ) load_addr.
1619 } else {
1621 goto bail3;
1622 }
1623
1624 newent = (
unsigned long ) *ent;
1627 return 0;
1628 } else if ( is_itanium2_and_iear( native_pfm_index ) ) {
1631 unsigned long newent;
1632
1634 goto safety;
1635
1636
1637 ++( *ent );
1638
1639
1640
1642 latency =
1644 sizeof ( icache_line_addr ) );
1645
1646 SUBDBG(
"PMD[0]: %#016llx\n",
1647 (
unsigned long long ) icache_line_addr.
pmd_val );
1648 SUBDBG(
"PMD[1]: %#016llx\n", (
unsigned long long ) latency.
pmd_val );
1649
1651 SUBDBG(
"Invalid IEAR sample found, iear_stat = %#x\n",
1653 bail4:
1654 newent = (
unsigned long ) *ent;
1657 return ( 0 );
1658 }
1659
1663 } else {
1665 goto bail4;
1666 }
1667
1668 newent = (
unsigned long ) *ent;
1671 return 0;
1672 }
1673#if 0
1674 (
is_btb( native_pfm_index ) ) {
1675
1676
1677 }
1678#endif
1679 else
1680 safety:
1681#endif
1682 {
1683 *pc = (
vptr_t ) ( (
size_t ) ( ( *ent )->ip ) );
1684 ++( *ent );
1685 return ( 0 );
1686 }
1687}
struct pfm_ita2_pmd_reg_t::@54 pmd0_ita2_reg
struct pfm_ita2_pmd_reg_t::@61 pmd17_ita2_reg
struct pfm_ita2_pmd_reg_t::@57 pmd3_ita2_reg
struct pfm_mont_pmd_reg_t::@75 pmd33_mont_reg
struct pfm_mont_pmd_reg_t::@76 pmd34_mont_reg
struct pfm_mont_pmd_reg_t::@78 pmd36_mont_reg