1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 #include <linux/errno.h>
   9 
  10         .text
  11 
  12 retl_efault:
  13         retl
  14          mov    -EFAULT, %o0
  15 
  16         
  17 
  18 
  19 
  20 
  21 
  22 
  23 
  24 
  25         .globl  __do_int_store
  26 __do_int_store:
  27         ld      [%o2], %g1
  28         cmp     %o1, 2
  29         be      2f
  30          cmp    %o1, 4
  31         be      1f
  32          srl    %g1, 24, %g2
  33         srl     %g1, 16, %g7
  34 4:      stb     %g2, [%o0]
  35         srl     %g1, 8, %g2
  36 5:      stb     %g7, [%o0 + 1]
  37         ld      [%o2 + 4], %g7
  38 6:      stb     %g2, [%o0 + 2]
  39         srl     %g7, 24, %g2
  40 7:      stb     %g1, [%o0 + 3]
  41         srl     %g7, 16, %g1
  42 8:      stb     %g2, [%o0 + 4]
  43         srl     %g7, 8, %g2
  44 9:      stb     %g1, [%o0 + 5]
  45 10:     stb     %g2, [%o0 + 6]
  46         b       0f
  47 11:      stb    %g7, [%o0 + 7]
  48 1:      srl     %g1, 16, %g7
  49 12:     stb     %g2, [%o0]
  50         srl     %g1, 8, %g2
  51 13:     stb     %g7, [%o0 + 1]
  52 14:     stb     %g2, [%o0 + 2]
  53         b       0f
  54 15:      stb    %g1, [%o0 + 3]
  55 2:      srl     %g1, 8, %g2
  56 16:     stb     %g2, [%o0]
  57 17:     stb     %g1, [%o0 + 1]
  58 0:      retl
  59          mov    0, %o0
  60 
  61         .section __ex_table,#alloc
  62         .word   4b, retl_efault
  63         .word   5b, retl_efault
  64         .word   6b, retl_efault
  65         .word   7b, retl_efault
  66         .word   8b, retl_efault
  67         .word   9b, retl_efault
  68         .word   10b, retl_efault
  69         .word   11b, retl_efault
  70         .word   12b, retl_efault
  71         .word   13b, retl_efault
  72         .word   14b, retl_efault
  73         .word   15b, retl_efault
  74         .word   16b, retl_efault
  75         .word   17b, retl_efault
  76         .previous
  77 
  78         
  79 
  80 
  81 
  82 
  83 
  84 
  85 
  86 
  87 
  88         .globl  do_int_load
  89 do_int_load:
  90         cmp     %o1, 8
  91         be      9f
  92          cmp    %o1, 4
  93         be      6f
  94 4:       ldub   [%o2], %g1
  95 5:      ldub    [%o2 + 1], %g2
  96         sll     %g1, 8, %g1
  97         tst     %o3
  98         be      3f
  99          or     %g1, %g2, %g1
 100         sll     %g1, 16, %g1
 101         sra     %g1, 16, %g1
 102 3:      b       0f
 103          st     %g1, [%o0]
 104 6:      ldub    [%o2 + 1], %g2
 105         sll     %g1, 24, %g1
 106 7:      ldub    [%o2 + 2], %g7
 107         sll     %g2, 16, %g2
 108 8:      ldub    [%o2 + 3], %g3
 109         sll     %g7, 8, %g7
 110         or      %g3, %g2, %g3
 111         or      %g7, %g3, %g7
 112         or      %g1, %g7, %g1
 113         b       0f
 114          st     %g1, [%o0]
 115 9:      ldub    [%o2], %g1
 116 10:     ldub    [%o2 + 1], %g2
 117         sll     %g1, 24, %g1
 118 11:     ldub    [%o2 + 2], %g7
 119         sll     %g2, 16, %g2
 120 12:     ldub    [%o2 + 3], %g3
 121         sll     %g7, 8, %g7
 122         or      %g1, %g2, %g1
 123         or      %g7, %g3, %g7
 124         or      %g1, %g7, %g7
 125 13:     ldub    [%o2 + 4], %g1
 126         st      %g7, [%o0]
 127 14:     ldub    [%o2 + 5], %g2
 128         sll     %g1, 24, %g1
 129 15:     ldub    [%o2 + 6], %g7
 130         sll     %g2, 16, %g2
 131 16:     ldub    [%o2 + 7], %g3
 132         sll     %g7, 8, %g7
 133         or      %g1, %g2, %g1
 134         or      %g7, %g3, %g7
 135         or      %g1, %g7, %g7
 136         st      %g7, [%o0 + 4]
 137 0:      retl
 138          mov    0, %o0
 139 
 140         .section __ex_table,#alloc
 141         .word   4b, retl_efault
 142         .word   5b, retl_efault
 143         .word   6b, retl_efault
 144         .word   7b, retl_efault
 145         .word   8b, retl_efault
 146         .word   9b, retl_efault
 147         .word   10b, retl_efault
 148         .word   11b, retl_efault
 149         .word   12b, retl_efault
 150         .word   13b, retl_efault
 151         .word   14b, retl_efault
 152         .word   15b, retl_efault
 153         .word   16b, retl_efault
 154         .previous