Changeset 965dc18 in mainline for kernel/arch/sparc64/src/mm/cache.S


Ignore:
Timestamp:
2008-12-05T19:59:03Z (17 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
49093a4
Parents:
0258e67
Message:

Merge sparc branch to trunk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/src/mm/cache.S

    r0258e67 r965dc18  
    4848        ! beware SF Erratum #51, do not put the MEMBAR here
    4949        nop                             
    50 
    51 /** Flush only D-cache lines of one virtual color.
    52  *
    53  * @param o0    Virtual color to be flushed.
    54  */
    55 .global dcache_flush_color
    56 dcache_flush_color:
    57         mov (DCACHE_SIZE / DCACHE_LINE_SIZE) / 2, %g1
    58         set DCACHE_SIZE / 2, %g2
    59         sllx %g2, %o0, %g2
    60         sub %g2, DCACHE_LINE_SIZE, %g2
    61 0:      stxa %g0, [%g2] ASI_DCACHE_TAG
    62         membar #Sync
    63         subcc %g1, 1, %g1
    64         bnz,pt %xcc, 0b
    65         sub %g2, DCACHE_LINE_SIZE, %g2
    66         retl
    67         nop
    68 
    69 /** Flush only D-cache lines of one virtual color and one tag.
    70  *
    71  * @param o0    Virtual color to lookup the tag.
    72  * @param o1    Tag of the cachelines to be flushed.
    73  */
    74 .global dcache_flush_tag
    75 dcache_flush_tag:
    76         mov (DCACHE_SIZE / DCACHE_LINE_SIZE) / 2, %g1
    77         set DCACHE_SIZE / 2, %g2
    78         sllx %g2, %o0, %g2
    79         sub %g2, DCACHE_LINE_SIZE, %g2
    80 0:      ldxa [%g2] ASI_DCACHE_TAG, %g3
    81         srlx %g3, DCACHE_TAG_SHIFT, %g3
    82         cmp %g3, %o1
    83         bnz 1f
    84         nop
    85         stxa %g0, [%g2] ASI_DCACHE_TAG
    86         membar #Sync
    87 1:      subcc %g1, 1, %g1
    88         bnz,pt %xcc, 0b
    89         sub %g2, DCACHE_LINE_SIZE, %g2
    90         retl
    91         nop
Note: See TracChangeset for help on using the changeset viewer.