Print this page
restore sparc comments
de-linting of .s files

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/sun4u/cpu/common_asm.s
          +++ new/usr/src/uts/sun4u/cpu/common_asm.s
↓ open down ↓ 14 lines elided ↑ open up ↑
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
  23   23   */
  24   24  
  25      -#if !defined(lint)
  26   25  #include "assym.h"
  27      -#endif  /* !lint */
  28   26  
  29   27  /*
  30   28   * General assembly language routines.
  31   29   * It is the intent of this file to contain routines that are
  32   30   * specific to cpu architecture.
  33   31   */
  34   32  
  35   33  /*
  36   34   * WARNING: If you add a fast trap handler which can be invoked by a
  37   35   * non-privileged user, you may have to use the FAST_TRAP_DONE macro
↓ open down ↓ 168 lines elided ↑ open up ↑
 206  204          rd      TICK_COMPARE, %g0
 207  205  #else   /* BB_ERRATA_1 */
 208  206  #define WR_TICKCMPR(in,scr1,scr2,label)         \
 209  207          wr      in, TICK_COMPARE
 210  208  #endif  /* BB_ERRATA_1 */
 211  209  
 212  210  #endif  /* !CHEETAH && !HUMMINGBIRD */
 213  211  
 214  212  #include <sys/clock.h>
 215  213  
 216      -#if defined(lint)
 217      -#include <sys/types.h>
 218      -#include <sys/scb.h>
 219      -#include <sys/systm.h>
 220      -#include <sys/regset.h>
 221      -#include <sys/sunddi.h>
 222      -#include <sys/lockstat.h>
 223      -#endif  /* lint */
 224  214  
 225      -
 226  215  #include <sys/asm_linkage.h>
 227  216  #include <sys/privregs.h>
 228  217  #include <sys/machparam.h>      /* To get SYSBASE and PAGESIZE */
 229  218  #include <sys/machthread.h>
 230  219  #include <sys/clock.h>
 231  220  #include <sys/intreg.h>
 232  221  #include <sys/psr_compat.h>
 233  222  #include <sys/isa_defs.h>
 234  223  #include <sys/dditypes.h>
 235  224  #include <sys/intr.h>
 236  225  
 237      -#if !defined(lint)
 238  226  #include "assym.h"
 239      -#endif  /* !lint */
 240  227  
 241      -#if defined(lint)
 242      -
 243      -uint_t
 244      -get_impl(void)
 245      -{ return (0); }
 246      -
 247      -#else   /* lint */
 248      -
 249  228          ENTRY(get_impl)
 250  229          GET_CPU_IMPL(%o0)
 251  230          retl
 252  231          nop
 253  232          SET_SIZE(get_impl)
 254  233  
 255      -#endif  /* lint */
 256      -
 257      -#if defined(lint)
 258  234  /*
 259      - * Softint generated when counter field of tick reg matches value field 
      235 + * Softint generated when counter field of tick reg matches value field
 260  236   * of tick_cmpr reg
 261  237   */
 262      -/*ARGSUSED*/
 263      -void
 264      -tickcmpr_set(uint64_t clock_cycles)
 265      -{}
 266      -
 267      -#else   /* lint */
 268      -
 269  238          ENTRY_NP(tickcmpr_set)
 270  239          ! get 64-bit clock_cycles interval
 271  240          mov     %o0, %o2
 272  241          mov     8, %o3                  ! A reasonable initial step size
 273  242  1:
 274  243          WR_TICKCMPR(%o2,%o4,%o5,__LINE__)       ! Write to TICK_CMPR
 275  244  
 276  245          GET_NATIVE_TIME(%o0, %o4, %o5)  ! Read %tick to confirm the
 277  246          sllx    %o0, 1, %o0             !   value we wrote was in the future.
 278  247          srlx    %o0, 1, %o0
↓ open down ↓ 1 lines elided ↑ open up ↑
 280  249          cmp     %o2, %o0                ! If the value we wrote was in the
 281  250          bg,pt   %xcc, 2f                !   future, then blow out of here.
 282  251          sllx    %o3, 1, %o3             ! If not, then double our step size,
 283  252          ba,pt   %xcc, 1b                !   and take another lap.
 284  253          add     %o0, %o3, %o2           !
 285  254  2:
 286  255          retl
 287  256          nop
 288  257          SET_SIZE(tickcmpr_set)
 289  258  
 290      -#endif  /* lint */
 291      -
 292      -#if defined(lint)
 293      -
 294      -void
 295      -tickcmpr_disable(void)
 296      -{}
 297      -
 298      -#else   /* lint */
 299      -
 300  259          ENTRY_NP(tickcmpr_disable)
 301  260          mov     1, %g1
 302  261          sllx    %g1, TICKINT_DIS_SHFT, %o0
 303  262          WR_TICKCMPR(%o0,%o4,%o5,__LINE__)       ! Write to TICK_CMPR
 304  263          retl
 305  264          nop
 306  265          SET_SIZE(tickcmpr_disable)
 307  266  
 308      -#endif  /* lint */
      267 +#ifdef DEBUG
      268 +        .seg    ".text"
      269 +tick_write_panic:
      270 +        .asciz  "tick_write_delta: interrupts already disabled on entry"
      271 +#endif  /* DEBUG */
 309  272  
 310      -#if defined(lint)
 311      -
 312  273  /*
 313  274   * tick_write_delta() increments %tick by the specified delta.  This should
 314  275   * only be called after a CPR event to assure that gethrtime() continues to
 315  276   * increase monotonically.  Obviously, writing %tick needs to de done very
 316  277   * carefully to avoid introducing unnecessary %tick skew across CPUs.  For
 317  278   * this reason, we make sure we're i-cache hot before actually writing to
 318  279   * %tick.
 319  280   */
 320      -/*ARGSUSED*/
 321      -void
 322      -tick_write_delta(uint64_t delta)
 323      -{}
 324      -
 325      -#else   /* lint */
 326      -
 327      -#ifdef DEBUG
 328      -        .seg    ".text"
 329      -tick_write_panic:
 330      -        .asciz  "tick_write_delta: interrupts already disabled on entry"
 331      -#endif  /* DEBUG */
 332      -
 333  281          ENTRY_NP(tick_write_delta)
 334  282          rdpr    %pstate, %g1
 335  283  #ifdef DEBUG
 336  284          andcc   %g1, PSTATE_IE, %g0     ! If DEBUG, check that interrupts
 337  285          bnz     0f                      ! aren't already disabled.
 338  286          sethi   %hi(tick_write_panic), %o1
 339  287          save    %sp, -SA(MINFRAME), %sp ! get a new window to preserve caller
 340  288          call    panic
 341  289          or      %i1, %lo(tick_write_panic), %o0
 342  290  #endif  /* DEBUG */
 343  291  0:      wrpr    %g1, PSTATE_IE, %pstate ! Disable interrupts
 344  292          mov     %o0, %o2
 345  293          ba      0f                      ! Branch to cache line-aligned instr.
 346  294          nop
 347  295          .align  16
 348  296  0:      nop                             ! The next 3 instructions are now hot.
 349  297          DELTA_NATIVE_TIME(%o2, %o3, %o4, %o5, %g2)      ! read/inc/write %tick
 350  298  
 351  299          retl                            ! Return
 352  300          wrpr    %g0, %g1, %pstate       !     delay: Re-enable interrupts
 353      -#endif  /* lint */
 354  301  
 355      -#if defined(lint)
 356      -/*
 357      - *  return 1 if disabled
 358      - */
 359      -
 360      -int
 361      -tickcmpr_disabled(void)
 362      -{ return (0); }
 363      -
 364      -#else   /* lint */
 365      -
 366  302          ENTRY_NP(tickcmpr_disabled)
 367  303          RD_TICKCMPR(%g1, %o0)
 368  304          retl
 369  305          srlx    %g1, TICKINT_DIS_SHFT, %o0
 370  306          SET_SIZE(tickcmpr_disabled)
 371  307  
 372      -#endif  /* lint */
 373      -
 374  308  /*
 375  309   * Get current tick
 376  310   */
 377      -#if defined(lint)
 378  311  
 379      -u_longlong_t
 380      -gettick(void)
 381      -{ return (0); }
 382      -
 383      -u_longlong_t
 384      -randtick(void)
 385      -{ return (0); }
 386      -
 387      -#else   /* lint */
 388      -
 389  312          ENTRY(gettick)
 390  313          ALTENTRY(randtick)
 391  314          GET_NATIVE_TIME(%o0, %o2, %o3)
 392  315          retl
 393  316          nop
 394  317          SET_SIZE(randtick)
 395  318          SET_SIZE(gettick)
 396  319  
 397      -#endif  /* lint */
 398  320  
 399      -
 400  321  /*
 401  322   * Return the counter portion of the tick register.
 402  323   */
 403  324  
 404      -#if defined(lint)
 405      -
 406      -uint64_t
 407      -gettick_counter(void)
 408      -{ return(0); }
 409      -
 410      -#else   /* lint */
 411      -
 412  325          ENTRY_NP(gettick_counter)
 413  326          rdpr    %tick, %o0
 414  327          sllx    %o0, 1, %o0
 415  328          retl
 416  329          srlx    %o0, 1, %o0             ! shake off npt bit
 417  330          SET_SIZE(gettick_counter)
 418      -#endif  /* lint */
 419  331  
 420  332  /*
 421  333   * Provide a C callable interface to the trap that reads the hi-res timer.
 422  334   * Returns 64-bit nanosecond timestamp in %o0 and %o1.
 423  335   */
 424  336  
 425      -#if defined(lint)
 426      -
 427      -hrtime_t
 428      -gethrtime(void)
 429      -{
 430      -        return ((hrtime_t)0);
 431      -}
 432      -
 433      -hrtime_t
 434      -gethrtime_unscaled(void)
 435      -{
 436      -        return ((hrtime_t)0);
 437      -}
 438      -
 439      -hrtime_t
 440      -gethrtime_max(void)
 441      -{
 442      -        return ((hrtime_t)0);
 443      -}
 444      -
 445      -void
 446      -scalehrtime(hrtime_t *hrt)
 447      -{
 448      -        *hrt = 0;
 449      -}
 450      -
 451      -void
 452      -gethrestime(timespec_t *tp)
 453      -{
 454      -        tp->tv_sec = 0;
 455      -        tp->tv_nsec = 0;
 456      -}
 457      -
 458      -time_t
 459      -gethrestime_sec(void)
 460      -{
 461      -        return (0);
 462      -}
 463      -
 464      -void
 465      -gethrestime_lasttick(timespec_t *tp)
 466      -{
 467      -        tp->tv_sec = 0;
 468      -        tp->tv_nsec = 0;
 469      -}
 470      -
 471      -/*ARGSUSED*/
 472      -void
 473      -hres_tick(void)
 474      -{
 475      -}
 476      -
 477      -void
 478      -panic_hres_tick(void)
 479      -{
 480      -}
 481      -
 482      -#else   /* lint */
 483      -
 484  337          ENTRY_NP(gethrtime)
 485  338          GET_HRTIME(%g1, %o0, %o1, %o2, %o3, %o4, %o5, %g2)
 486  339                                                          ! %g1 = hrtime
 487  340          retl
 488  341          mov     %g1, %o0
 489  342          SET_SIZE(gethrtime)
 490  343  
 491  344          ENTRY_NP(gethrtime_unscaled)
 492  345          GET_NATIVE_TIME(%g1, %o2, %o3)                  ! %g1 = native time
 493  346          retl
↓ open down ↓ 271 lines elided ↑ open up ↑
 765  618          ld      [%l4 + %lo(hres_lock)], %i1
 766  619          inc     %i1
 767  620          st      %i1, [%l4 + %lo(hres_lock)]
 768  621  
 769  622          sethi   %hi(hrtime_base_panic), %o0
 770  623          call    panic
 771  624          or      %o0, %lo(hrtime_base_panic), %o0
 772  625  
 773  626          SET_SIZE(hres_tick)
 774  627  
 775      -#endif  /* lint */
 776      -
 777      -#if !defined(lint) && !defined(__lint)
 778      -
 779  628          .seg    ".text"
 780  629  kstat_q_panic_msg:
 781  630          .asciz  "kstat_q_exit: qlen == 0"
 782  631  
 783  632          ENTRY(kstat_q_panic)
 784  633          save    %sp, -SA(MINFRAME), %sp
 785  634          sethi   %hi(kstat_q_panic_msg), %o0
 786  635          call    panic
 787  636          or      %o0, %lo(kstat_q_panic_msg), %o0
 788  637          /*NOTREACHED*/
↓ open down ↓ 89 lines elided ↑ open up ↑
 878  727          ENTRY(kstat_runq_back_to_waitq)
 879  728          GET_NATIVE_TIME(%g1, %g2, %g3)
 880  729  #if defined(DEBUG)
 881  730          KSTAT_Q_UPDATE(sub, BRZPN, kstat_q_panic, 1:, KSTAT_IO_R)
 882  731  #else
 883  732          KSTAT_Q_UPDATE_ND(sub, 1:, KSTAT_IO_R)
 884  733  #endif
 885  734          KSTAT_Q_UPDATE(add, BRZPT, 1f, 1:retl, KSTAT_IO_W)
 886  735          SET_SIZE(kstat_runq_back_to_waitq)
 887  736  
 888      -#endif  /* !(lint || __lint) */
 889      -
 890      -#ifdef lint     
 891      -
 892      -int64_t timedelta;
 893      -hrtime_t hres_last_tick;
 894      -volatile timestruc_t hrestime;
 895      -int64_t hrestime_adj;
 896      -volatile int hres_lock;
 897      -uint_t nsec_scale;
 898      -hrtime_t hrtime_base;
 899      -int traptrace_use_stick;
 900      -
 901      -#else   /* lint */
 902  737          /*
 903  738           *  -- WARNING --
 904  739           *
 905  740           * The following variables MUST be together on a 128-byte boundary.
 906  741           * In addition to the primary performance motivation (having them all
 907  742           * on the same cache line(s)), code here and in the GET*TIME() macros
 908  743           * assumes that they all have the same high 22 address bits (so
 909  744           * there's only one sethi).
 910  745           */
 911  746          .seg    ".data"
↓ open down ↓ 17 lines elided ↑ open up ↑
 929  764          .word   0
 930  765  hrtime_base:
 931  766          .word   0, 0
 932  767  traptrace_use_stick:
 933  768          .word   0
 934  769  nsec_shift:
 935  770          .word   NSEC_SHIFT
 936  771  adj_shift:
 937  772          .word   ADJ_SHIFT
 938  773  
 939      -#endif  /* lint */
 940  774  
 941      -
 942  775  /*
 943  776   * drv_usecwait(clock_t n)      [DDI/DKI - section 9F]
 944  777   * usec_delay(int n)            [compatibility - should go one day]
 945  778   * Delay by spinning.
 946  779   *
 947  780   * delay for n microseconds.  numbers <= 0 delay 1 usec
 948  781   *
 949  782   * With UltraSPARC-III the combination of supporting mixed-speed CPUs
 950  783   * and variable clock rate for power management requires that we
 951  784   * use %stick to implement this routine.
 952  785   *
 953  786   * For OPL platforms that support the "sleep" instruction, we
 954  787   * conditionally (ifdef'ed) insert a "sleep" instruction in
 955  788   * the loop. Note that theoritically we should have move (duplicated)
 956  789   * the code down to spitfire/us3/opl specific asm files - but this
 957  790   * is alot of code duplication just to add one "sleep" instruction.
 958  791   * We chose less code duplication for this.
 959  792   */
 960  793  
 961      -#if defined(lint)
 962      -
 963      -/*ARGSUSED*/
 964      -void
 965      -drv_usecwait(clock_t n)
 966      -{}
 967      -
 968      -/*ARGSUSED*/
 969      -void
 970      -usec_delay(int n)
 971      -{}
 972      -
 973      -#else   /* lint */
 974      -
 975  794          ENTRY(drv_usecwait)
 976  795          ALTENTRY(usec_delay)
 977  796          brlez,a,pn %o0, 0f
 978  797          mov     1, %o0
 979  798  0:
 980  799          sethi   %hi(sticks_per_usec), %o1
 981  800          lduw    [%o1 + %lo(sticks_per_usec)], %o1
 982  801          mulx    %o1, %o0, %o1           ! Scale usec to ticks
 983  802          inc     %o1                     ! We don't start on a tick edge
 984  803          GET_NATIVE_TIME(%o2, %o3, %o4)
↓ open down ↓ 4 lines elided ↑ open up ↑
 989  808          .word 0x81b01060                ! insert "sleep" instruction
 990  809  #endif /* _OPL */                       ! use byte code for now
 991  810          cmp     %o1, %o2
 992  811          GET_NATIVE_TIME(%o2, %o3, %o4)
 993  812          bgeu,pt %xcc, 1b
 994  813          nop
 995  814          retl
 996  815          nop
 997  816          SET_SIZE(usec_delay)
 998  817          SET_SIZE(drv_usecwait)
 999      -#endif  /* lint */
1000  818  
1001      -#if defined(lint)
1002      -
1003      -/* ARGSUSED */
1004      -void
1005      -pil14_interrupt(int level)
1006      -{}
1007      -
1008      -#else   /* lint */
1009      -
1010  819  /*
1011  820   * Level-14 interrupt prologue.
1012  821   */
1013  822          ENTRY_NP(pil14_interrupt)
1014  823          CPU_ADDR(%g1, %g2)
1015  824          rdpr    %pil, %g6                       ! %g6 = interrupted PIL
1016  825          stn     %g6, [%g1 + CPU_PROFILE_PIL]    ! record interrupted PIL
1017  826          rdpr    %tstate, %g6
1018  827          rdpr    %tpc, %g5
1019  828          btst    TSTATE_PRIV, %g6                ! trap from supervisor mode?
↓ open down ↓ 69 lines elided ↑ open up ↑
1089  898          cmp     %o5, %o0                        ! In the future?
1090  899          bg,a,pt %xcc, 2f                        ! Yes, drive on.
1091  900          wrpr    %g0, %g5, %pstate               !    delay: enable vec intr
1092  901          ba      1b                              ! No, try again.
1093  902          sllx    %o4, 1, %o4                     !    delay: double step size
1094  903  
1095  904  2:      ba      current_thread_complete
1096  905          nop
1097  906          SET_SIZE(tick_rtt)
1098  907  
1099      -#endif  /* lint */
1100      -
1101      -#if defined(lint)
1102      -
1103      -/* ARGSUSED */
1104      -void
1105      -pil15_interrupt(int level)
1106      -{}
1107      -
1108      -#else  /* lint */
1109      -
1110  908  /*
1111  909   * Level-15 interrupt prologue.
1112  910   */
1113  911         ENTRY_NP(pil15_interrupt)
1114  912         CPU_ADDR(%g1, %g2)
1115  913         rdpr    %tstate, %g6
1116  914         rdpr    %tpc, %g5
1117  915         btst    TSTATE_PRIV, %g6                ! trap from supervisor mode?
1118  916         bnz,a,pt %xcc, 1f
1119  917         stn     %g5, [%g1 + CPU_CPCPROFILE_PC]  ! if so, record kernel PC
1120  918         stn     %g5, [%g1 + CPU_CPCPROFILE_UPC] ! if not, record user PC
1121  919         ba      pil15_epilogue                  ! must be large-disp branch
1122  920         stn     %g0, [%g1 + CPU_CPCPROFILE_PC]  ! zero kernel PC
1123  921  1:     ba      pil15_epilogue                  ! must be large-disp branch
1124  922         stn     %g0, [%g1 + CPU_CPCPROFILE_UPC] ! zero user PC
1125  923         SET_SIZE(pil15_interrupt)
1126  924  
1127      -#endif /* lint */
1128      -
1129      -#if defined(lint) || defined(__lint)
1130      -
1131      -/* ARGSUSED */
1132      -uint64_t
1133      -find_cpufrequency(volatile uchar_t *clock_ptr)
1134      -{
1135      -        return (0);
1136      -}
1137      -
1138      -#else   /* lint */
1139      -
1140  925  #ifdef DEBUG
1141  926          .seg    ".text"
1142  927  find_cpufreq_panic:
1143  928          .asciz  "find_cpufrequency: interrupts already disabled on entry"
1144  929  #endif  /* DEBUG */
1145  930  
1146  931          ENTRY_NP(find_cpufrequency)
1147  932          rdpr    %pstate, %g1
1148  933  
1149  934  #ifdef DEBUG
↓ open down ↓ 27 lines elided ↑ open up ↑
1177  962  
1178  963          brz,pn  %o4, 0b                 ! if the minutes just rolled over,
1179  964                                          ! the last second could have been
1180  965                                          ! inaccurate; try again.
1181  966          wrpr    %g0, %g1, %pstate       !   delay: re-enable interrupts
1182  967  
1183  968          retl
1184  969          sub     %o5, %o3, %o0           ! return the difference in ticks
1185  970          SET_SIZE(find_cpufrequency)
1186  971  
1187      -#endif  /* lint */
1188      -
1189      -#if defined(lint)
1190      -/*
1191      - * Prefetch a page_t for write or read, this assumes a linear
1192      - * scan of sequential page_t's.
1193      - */
1194      -/*ARGSUSED*/
1195      -void
1196      -prefetch_page_w(void *pp)
1197      -{}
1198      -
1199      -/*ARGSUSED*/
1200      -void
1201      -prefetch_page_r(void *pp)
1202      -{}
1203      -#else   /* lint */
1204      -
1205  972  #if defined(CHEETAH) || defined(CHEETAH_PLUS) || defined(JALAPENO) || \
1206  973          defined(SERRANO)
1207  974          !
1208  975          ! On US-III, the prefetch instruction queue is 8 entries deep.
1209  976          ! Also, prefetches for write put data in the E$, which has
1210  977          ! lines of 512 bytes for an 8MB cache. Each E$ line is further
1211  978          ! subblocked into 64 byte chunks.
1212  979          !
1213  980          ! Since prefetch can only bring in 64 bytes at a time (See Sparc
1214  981          ! v9 Architecture Manual pp.204) and a page_t is 128 bytes,
↓ open down ↓ 65 lines elided ↑ open up ↑
1280 1047          ! PRM). On Cheetah, #n_write prefetches are reflected with
1281 1048          ! RTS->RTO state transition regardless.
1282 1049          !
1283 1050  #define STRIDE1 512
1284 1051  #define STRIDE2 576
1285 1052  
1286 1053  #if     STRIDE1 != (PAGE_SIZE * 4)
1287 1054  #error  "STRIDE1 != (PAGE_SIZE * 4)"
1288 1055  #endif  /* STRIDE1 != (PAGE_SIZE * 4) */
1289 1056  
     1057 +/*
     1058 + * Prefetch a page_t for write or read, this assumes a linear
     1059 + * scan of sequential page_t's.
     1060 + */
1290 1061          ENTRY(prefetch_page_w)
1291 1062          prefetch        [%o0+STRIDE1], #n_writes
1292 1063          retl
1293 1064          prefetch        [%o0+STRIDE2], #n_writes
1294 1065          SET_SIZE(prefetch_page_w)
1295 1066  
1296 1067          !
1297 1068          ! Note on CHEETAH to prefetch for read, we really use #one_write.
1298 1069          ! This fetches to E$ (general use) rather than P$ (floating point use).
1299 1070          !
↓ open down ↓ 51 lines elided ↑ open up ↑
1351 1122          prefetch        [%o0+STRIDE1], #n_writes
1352 1123          retl
1353 1124          prefetch        [%o0+STRIDE2], #n_writes
1354 1125          SET_SIZE(prefetch_page_r)
1355 1126  #else   /* OLYMPUS_C */
1356 1127  
1357 1128  #error "You need to fix this for your new cpu type."
1358 1129  
1359 1130  #endif  /* OLYMPUS_C */
1360 1131  
1361      -#endif  /* lint */
1362      -
1363      -#if defined(lint)
1364      -/*
1365      - * Prefetch struct smap for write. 
1366      - */
1367      -/*ARGSUSED*/
1368      -void
1369      -prefetch_smap_w(void *smp)
1370      -{}
1371      -#else   /* lint */
1372      -
1373 1132  #if defined(CHEETAH) || defined(CHEETAH_PLUS) || defined(JALAPENO) || \
1374 1133          defined(SERRANO)
1375 1134  
1376 1135  #define PREFETCH_Q_LEN 8
1377 1136  
1378 1137  #elif defined(SPITFIRE) || defined(HUMMINGBIRD)
1379 1138  
1380 1139  #define PREFETCH_Q_LEN 3
1381 1140  
1382 1141  #elif defined(OLYMPUS_C)
↓ open down ↓ 26 lines elided ↑ open up ↑
1409 1168          ! spans multiple hardware prefetch blocks.  Let's prefetch as far
1410 1169          ! ahead as the hardware will allow.
1411 1170          !
1412 1171          ! The smap array is processed with decreasing address pointers.
1413 1172          !
1414 1173  #define SMAP_SIZE 48
1415 1174  #define SMAP_STRIDE (PREFETCH_Q_LEN * SMAP_SIZE)
1416 1175  
1417 1176  #endif  /* SEGKPM_SUPPORT */
1418 1177  
     1178 +/*
     1179 + * Prefetch struct smap for write.
     1180 + */
1419 1181          ENTRY(prefetch_smap_w)
1420 1182          retl
1421 1183          prefetch        [%o0-SMAP_STRIDE], #n_writes
1422 1184          SET_SIZE(prefetch_smap_w)
1423 1185  
1424      -#endif  /* lint */
1425      -
1426      -#if defined(lint) || defined(__lint)
1427      -
1428      -/* ARGSUSED */
1429      -uint64_t
1430      -getidsr(void)
1431      -{ return 0; }
1432      -
1433      -#else   /* lint */
1434      -
1435 1186          ENTRY_NP(getidsr)
1436 1187          retl
1437 1188          ldxa    [%g0]ASI_INTR_DISPATCH_STATUS, %o0
1438 1189          SET_SIZE(getidsr)
1439 1190  
1440      -#endif  /* lint */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX