linux/arch/frv/lib/outsl_sw.S
<<
>>
Prefs
   1/* outsl_ns.S: output array of 4b words to device with byte swapping
   2 *
   3 * Copyright (C) 2003 Red Hat, Inc. All Rights Reserved.
   4 * Written by David Howells (dhowells@redhat.com)
   5 *
   6 * This program is free software; you can redistribute it and/or
   7 * modify it under the terms of the GNU General Public License
   8 * as published by the Free Software Foundation; either version
   9 * 2 of the License, or (at your option) any later version.
  10 */
  11
  12
  13        .text
  14        .p2align        4
  15
  16###############################################################################
  17#
  18# void __outsl_sw(unsigned int port, const void *buf, int n)
  19#
  20###############################################################################
  21        .globl          __outsl_sw
  22        .type           __outsl_sw,@function
  23__outsl_sw:
  24        subi.p          gr9,#1,gr9
  25        setlos          #1,gr4
  260:
  27        ldubu           @(gr9,gr4),gr5
  28        ldubu           @(gr9,gr4),gr6
  29        slli            gr6,#8,gr6
  30        ldubu.p         @(gr9,gr4),gr7
  31        or              gr5,gr6,gr5
  32        ldubu.p         @(gr9,gr4),gr6
  33        slli            gr7,#16,gr7
  34        slli.p          gr6,#24,gr6
  35        or              gr5,gr7,gr5
  36        subicc.p        gr10,#1,gr10,icc0
  37        or              gr5,gr6,gr5
  38
  39        sti.p           gr5,@(gr8,#0)
  40        bhi             icc0,#2,0b
  41
  42        membar
  43        bralr
  44
  45        .size           __outsl_sw, .-__outsl_sw
  46