~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/sparc/lib/divdi3.S

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/sparc/lib/divdi3.S (Version linux-6.11-rc3) and /arch/sparc/lib/divdi3.S (Version linux-4.16.18)


  1 /* SPDX-License-Identifier: GPL-2.0-or-later * << 
  2 /* Copyright (C) 1989, 1992, 1993, 1994, 1995       1 /* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
  3                                                     2 
  4 This file is part of GNU CC.                        3 This file is part of GNU CC.
  5                                                     4 
  6  */                                            !!   5 GNU CC is free software; you can redistribute it and/or modify
                                                   >>   6 it under the terms of the GNU General Public License as published by
                                                   >>   7 the Free Software Foundation; either version 2, or (at your option)
                                                   >>   8 any later version.
  7                                                     9 
  8 #include <linux/export.h>                      !!  10 GNU CC is distributed in the hope that it will be useful,
                                                   >>  11 but WITHOUT ANY WARRANTY; without even the implied warranty of
                                                   >>  12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                                                   >>  13 GNU General Public License for more details.
                                                   >>  14 
                                                   >>  15 You should have received a copy of the GNU General Public License
                                                   >>  16 along with GNU CC; see the file COPYING.  If not, write to
                                                   >>  17 the Free Software Foundation, 59 Temple Place - Suite 330,
                                                   >>  18 Boston, MA 02111-1307, USA.  */
                                                   >>  19 
                                                   >>  20 #include <asm/export.h>
  9         .text                                      21         .text
 10         .align 4                                   22         .align 4
 11         .globl __divdi3                            23         .globl __divdi3
 12 __divdi3:                                          24 __divdi3:
 13         save %sp,-104,%sp                          25         save %sp,-104,%sp
 14         cmp %i0,0                                  26         cmp %i0,0
 15         bge .LL40                                  27         bge .LL40
 16         mov 0,%l4                                  28         mov 0,%l4
 17         mov -1,%l4                                 29         mov -1,%l4
 18         sub %g0,%i1,%o0                            30         sub %g0,%i1,%o0
 19         mov %o0,%o5                                31         mov %o0,%o5
 20         subcc %g0,%o0,%g0                          32         subcc %g0,%o0,%g0
 21         sub %g0,%i0,%o0                            33         sub %g0,%i0,%o0
 22         subx %o0,0,%o4                             34         subx %o0,0,%o4
 23         mov %o4,%i0                                35         mov %o4,%i0
 24         mov %o5,%i1                                36         mov %o5,%i1
 25 .LL40:                                             37 .LL40:
 26         cmp %i2,0                                  38         cmp %i2,0
 27         bge .LL84                                  39         bge .LL84
 28         mov %i3,%o4                                40         mov %i3,%o4
 29         xnor %g0,%l4,%l4                           41         xnor %g0,%l4,%l4
 30         sub %g0,%i3,%o0                            42         sub %g0,%i3,%o0
 31         mov %o0,%o3                                43         mov %o0,%o3
 32         subcc %g0,%o0,%g0                          44         subcc %g0,%o0,%g0
 33         sub %g0,%i2,%o0                            45         sub %g0,%i2,%o0
 34         subx %o0,0,%o2                             46         subx %o0,0,%o2
 35         mov %o2,%i2                                47         mov %o2,%i2
 36         mov %o3,%i3                                48         mov %o3,%i3
 37         mov %i3,%o4                                49         mov %i3,%o4
 38 .LL84:                                             50 .LL84:
 39         cmp %i2,0                                  51         cmp %i2,0
 40         bne .LL45                                  52         bne .LL45
 41         mov %i1,%i3                                53         mov %i1,%i3
 42         cmp %o4,%i0                                54         cmp %o4,%i0
 43         bleu .LL46                                 55         bleu .LL46
 44         mov %i3,%o1                                56         mov %i3,%o1
 45         mov     32,%g1                             57         mov     32,%g1
 46         subcc   %i0,%o4,%g0                        58         subcc   %i0,%o4,%g0
 47 1:      bcs     5f                                 59 1:      bcs     5f
 48          addxcc %o1,%o1,%o1     ! shift n1n0 a     60          addxcc %o1,%o1,%o1     ! shift n1n0 and a q-bit in lsb
 49         sub     %i0,%o4,%i0     ! this kills m     61         sub     %i0,%o4,%i0     ! this kills msb of n
 50         addx    %i0,%i0,%i0     ! so this cann     62         addx    %i0,%i0,%i0     ! so this cannot give carry
 51         subcc   %g1,1,%g1                          63         subcc   %g1,1,%g1
 52 2:      bne     1b                                 64 2:      bne     1b
 53          subcc  %i0,%o4,%g0                        65          subcc  %i0,%o4,%g0
 54         bcs     3f                                 66         bcs     3f
 55          addxcc %o1,%o1,%o1     ! shift n1n0 a     67          addxcc %o1,%o1,%o1     ! shift n1n0 and a q-bit in lsb
 56         b       3f                                 68         b       3f
 57          sub    %i0,%o4,%i0     ! this kills m     69          sub    %i0,%o4,%i0     ! this kills msb of n
 58 4:      sub     %i0,%o4,%i0                        70 4:      sub     %i0,%o4,%i0
 59 5:      addxcc  %i0,%i0,%i0                        71 5:      addxcc  %i0,%i0,%i0
 60         bcc     2b                                 72         bcc     2b
 61          subcc  %g1,1,%g1                          73          subcc  %g1,1,%g1
 62 ! Got carry from n.  Subtract next step to can     74 ! Got carry from n.  Subtract next step to cancel this carry.
 63         bne     4b                                 75         bne     4b
 64          addcc  %o1,%o1,%o1     ! shift n1n0 a     76          addcc  %o1,%o1,%o1     ! shift n1n0 and a 0-bit in lsb
 65         sub     %i0,%o4,%i0                        77         sub     %i0,%o4,%i0
 66 3:      xnor    %o1,0,%o1                          78 3:      xnor    %o1,0,%o1
 67         b .LL50                                    79         b .LL50
 68         mov 0,%o2                                  80         mov 0,%o2
 69 .LL46:                                             81 .LL46:
 70         cmp %o4,0                                  82         cmp %o4,0
 71         bne .LL85                                  83         bne .LL85
 72         mov %i0,%o2                                84         mov %i0,%o2
 73         mov 1,%o0                                  85         mov 1,%o0
 74         mov 0,%o1                                  86         mov 0,%o1
 75         wr %g0, 0, %y                              87         wr %g0, 0, %y
 76         udiv %o0, %o1, %o0                         88         udiv %o0, %o1, %o0
 77         mov %o0,%o4                                89         mov %o0,%o4
 78         mov %i0,%o2                                90         mov %i0,%o2
 79 .LL85:                                             91 .LL85:
 80         mov 0,%g3                                  92         mov 0,%g3
 81         mov     32,%g1                             93         mov     32,%g1
 82         subcc   %g3,%o4,%g0                        94         subcc   %g3,%o4,%g0
 83 1:      bcs     5f                                 95 1:      bcs     5f
 84          addxcc %o2,%o2,%o2     ! shift n1n0 a     96          addxcc %o2,%o2,%o2     ! shift n1n0 and a q-bit in lsb
 85         sub     %g3,%o4,%g3     ! this kills m     97         sub     %g3,%o4,%g3     ! this kills msb of n
 86         addx    %g3,%g3,%g3     ! so this cann     98         addx    %g3,%g3,%g3     ! so this cannot give carry
 87         subcc   %g1,1,%g1                          99         subcc   %g1,1,%g1
 88 2:      bne     1b                                100 2:      bne     1b
 89          subcc  %g3,%o4,%g0                       101          subcc  %g3,%o4,%g0
 90         bcs     3f                                102         bcs     3f
 91          addxcc %o2,%o2,%o2     ! shift n1n0 a    103          addxcc %o2,%o2,%o2     ! shift n1n0 and a q-bit in lsb
 92         b       3f                                104         b       3f
 93          sub    %g3,%o4,%g3     ! this kills m    105          sub    %g3,%o4,%g3     ! this kills msb of n
 94 4:      sub     %g3,%o4,%g3                       106 4:      sub     %g3,%o4,%g3
 95 5:      addxcc  %g3,%g3,%g3                       107 5:      addxcc  %g3,%g3,%g3
 96         bcc     2b                                108         bcc     2b
 97          subcc  %g1,1,%g1                         109          subcc  %g1,1,%g1
 98 ! Got carry from n.  Subtract next step to can    110 ! Got carry from n.  Subtract next step to cancel this carry.
 99         bne     4b                                111         bne     4b
100          addcc  %o2,%o2,%o2     ! shift n1n0 a    112          addcc  %o2,%o2,%o2     ! shift n1n0 and a 0-bit in lsb
101         sub     %g3,%o4,%g3                       113         sub     %g3,%o4,%g3
102 3:      xnor    %o2,0,%o2                         114 3:      xnor    %o2,0,%o2
103         mov %g3,%i0                               115         mov %g3,%i0
104         mov %i3,%o1                               116         mov %i3,%o1
105         mov     32,%g1                            117         mov     32,%g1
106         subcc   %i0,%o4,%g0                       118         subcc   %i0,%o4,%g0
107 1:      bcs     5f                                119 1:      bcs     5f
108          addxcc %o1,%o1,%o1     ! shift n1n0 a    120          addxcc %o1,%o1,%o1     ! shift n1n0 and a q-bit in lsb
109         sub     %i0,%o4,%i0     ! this kills m    121         sub     %i0,%o4,%i0     ! this kills msb of n
110         addx    %i0,%i0,%i0     ! so this cann    122         addx    %i0,%i0,%i0     ! so this cannot give carry
111         subcc   %g1,1,%g1                         123         subcc   %g1,1,%g1
112 2:      bne     1b                                124 2:      bne     1b
113          subcc  %i0,%o4,%g0                       125          subcc  %i0,%o4,%g0
114         bcs     3f                                126         bcs     3f
115          addxcc %o1,%o1,%o1     ! shift n1n0 a    127          addxcc %o1,%o1,%o1     ! shift n1n0 and a q-bit in lsb
116         b       3f                                128         b       3f
117          sub    %i0,%o4,%i0     ! this kills m    129          sub    %i0,%o4,%i0     ! this kills msb of n
118 4:      sub     %i0,%o4,%i0                       130 4:      sub     %i0,%o4,%i0
119 5:      addxcc  %i0,%i0,%i0                       131 5:      addxcc  %i0,%i0,%i0
120         bcc     2b                                132         bcc     2b
121          subcc  %g1,1,%g1                         133          subcc  %g1,1,%g1
122 ! Got carry from n.  Subtract next step to can    134 ! Got carry from n.  Subtract next step to cancel this carry.
123         bne     4b                                135         bne     4b
124          addcc  %o1,%o1,%o1     ! shift n1n0 a    136          addcc  %o1,%o1,%o1     ! shift n1n0 and a 0-bit in lsb
125         sub     %i0,%o4,%i0                       137         sub     %i0,%o4,%i0
126 3:      xnor    %o1,0,%o1                         138 3:      xnor    %o1,0,%o1
127         b .LL86                                   139         b .LL86
128         mov %o1,%l1                               140         mov %o1,%l1
129 .LL45:                                            141 .LL45:
130         cmp %i2,%i0                               142         cmp %i2,%i0
131         bleu .LL51                                143         bleu .LL51
132         sethi %hi(65535),%o0                      144         sethi %hi(65535),%o0
133         b .LL78                                   145         b .LL78
134         mov 0,%o1                                 146         mov 0,%o1
135 .LL51:                                            147 .LL51:
136         or %o0,%lo(65535),%o0                     148         or %o0,%lo(65535),%o0
137         cmp %i2,%o0                               149         cmp %i2,%o0
138         bgu .LL58                                 150         bgu .LL58
139         mov %i2,%o1                               151         mov %i2,%o1
140         cmp %i2,256                               152         cmp %i2,256
141         addx %g0,-1,%o0                           153         addx %g0,-1,%o0
142         b .LL64                                   154         b .LL64
143         and %o0,8,%o2                             155         and %o0,8,%o2
144 .LL58:                                            156 .LL58:
145         sethi %hi(16777215),%o0                   157         sethi %hi(16777215),%o0
146         or %o0,%lo(16777215),%o0                  158         or %o0,%lo(16777215),%o0
147         cmp %i2,%o0                               159         cmp %i2,%o0
148         bgu .LL64                                 160         bgu .LL64
149         mov 24,%o2                                161         mov 24,%o2
150         mov 16,%o2                                162         mov 16,%o2
151 .LL64:                                            163 .LL64:
152         srl %o1,%o2,%o0                           164         srl %o1,%o2,%o0
153         sethi %hi(__clz_tab),%o1                  165         sethi %hi(__clz_tab),%o1
154         or %o1,%lo(__clz_tab),%o1                 166         or %o1,%lo(__clz_tab),%o1
155         ldub [%o0+%o1],%o0                        167         ldub [%o0+%o1],%o0
156         add %o0,%o2,%o0                           168         add %o0,%o2,%o0
157         mov 32,%o1                                169         mov 32,%o1
158         subcc %o1,%o0,%o3                         170         subcc %o1,%o0,%o3
159         bne,a .LL72                               171         bne,a .LL72
160         sub %o1,%o3,%o1                           172         sub %o1,%o3,%o1
161         cmp %i0,%i2                               173         cmp %i0,%i2
162         bgu .LL74                                 174         bgu .LL74
163         cmp %i3,%o4                               175         cmp %i3,%o4
164         blu .LL78                                 176         blu .LL78
165         mov 0,%o1                                 177         mov 0,%o1
166 .LL74:                                            178 .LL74:
167         b .LL78                                   179         b .LL78
168         mov 1,%o1                                 180         mov 1,%o1
169 .LL72:                                            181 .LL72:
170         sll %i2,%o3,%o2                           182         sll %i2,%o3,%o2
171         srl %o4,%o1,%o0                           183         srl %o4,%o1,%o0
172         or %o2,%o0,%i2                            184         or %o2,%o0,%i2
173         sll %o4,%o3,%o4                           185         sll %o4,%o3,%o4
174         srl %i0,%o1,%o2                           186         srl %i0,%o1,%o2
175         sll %i0,%o3,%o0                           187         sll %i0,%o3,%o0
176         srl %i3,%o1,%o1                           188         srl %i3,%o1,%o1
177         or %o0,%o1,%i0                            189         or %o0,%o1,%i0
178         sll %i3,%o3,%i3                           190         sll %i3,%o3,%i3
179         mov %i0,%o1                               191         mov %i0,%o1
180         mov     32,%g1                            192         mov     32,%g1
181         subcc   %o2,%i2,%g0                       193         subcc   %o2,%i2,%g0
182 1:      bcs     5f                                194 1:      bcs     5f
183          addxcc %o1,%o1,%o1     ! shift n1n0 a    195          addxcc %o1,%o1,%o1     ! shift n1n0 and a q-bit in lsb
184         sub     %o2,%i2,%o2     ! this kills m    196         sub     %o2,%i2,%o2     ! this kills msb of n
185         addx    %o2,%o2,%o2     ! so this cann    197         addx    %o2,%o2,%o2     ! so this cannot give carry
186         subcc   %g1,1,%g1                         198         subcc   %g1,1,%g1
187 2:      bne     1b                                199 2:      bne     1b
188          subcc  %o2,%i2,%g0                       200          subcc  %o2,%i2,%g0
189         bcs     3f                                201         bcs     3f
190          addxcc %o1,%o1,%o1     ! shift n1n0 a    202          addxcc %o1,%o1,%o1     ! shift n1n0 and a q-bit in lsb
191         b       3f                                203         b       3f
192          sub    %o2,%i2,%o2     ! this kills m    204          sub    %o2,%i2,%o2     ! this kills msb of n
193 4:      sub     %o2,%i2,%o2                       205 4:      sub     %o2,%i2,%o2
194 5:      addxcc  %o2,%o2,%o2                       206 5:      addxcc  %o2,%o2,%o2
195         bcc     2b                                207         bcc     2b
196          subcc  %g1,1,%g1                         208          subcc  %g1,1,%g1
197 ! Got carry from n.  Subtract next step to can    209 ! Got carry from n.  Subtract next step to cancel this carry.
198         bne     4b                                210         bne     4b
199          addcc  %o1,%o1,%o1     ! shift n1n0 a    211          addcc  %o1,%o1,%o1     ! shift n1n0 and a 0-bit in lsb
200         sub     %o2,%i2,%o2                       212         sub     %o2,%i2,%o2
201 3:      xnor    %o1,0,%o1                         213 3:      xnor    %o1,0,%o1
202         mov %o2,%i0                               214         mov %o2,%i0
203         wr      %g0,%o1,%y      ! SPARC has 0-    215         wr      %g0,%o1,%y      ! SPARC has 0-3 delay insn after a wr
204         sra     %o4,31,%g2      ! Do not move     216         sra     %o4,31,%g2      ! Do not move this insn
205         and     %o1,%g2,%g2     ! Do not move     217         and     %o1,%g2,%g2     ! Do not move this insn
206         andcc   %g0,0,%g1       ! Do not move     218         andcc   %g0,0,%g1       ! Do not move this insn
207         mulscc  %g1,%o4,%g1                       219         mulscc  %g1,%o4,%g1
208         mulscc  %g1,%o4,%g1                       220         mulscc  %g1,%o4,%g1
209         mulscc  %g1,%o4,%g1                       221         mulscc  %g1,%o4,%g1
210         mulscc  %g1,%o4,%g1                       222         mulscc  %g1,%o4,%g1
211         mulscc  %g1,%o4,%g1                       223         mulscc  %g1,%o4,%g1
212         mulscc  %g1,%o4,%g1                       224         mulscc  %g1,%o4,%g1
213         mulscc  %g1,%o4,%g1                       225         mulscc  %g1,%o4,%g1
214         mulscc  %g1,%o4,%g1                       226         mulscc  %g1,%o4,%g1
215         mulscc  %g1,%o4,%g1                       227         mulscc  %g1,%o4,%g1
216         mulscc  %g1,%o4,%g1                       228         mulscc  %g1,%o4,%g1
217         mulscc  %g1,%o4,%g1                       229         mulscc  %g1,%o4,%g1
218         mulscc  %g1,%o4,%g1                       230         mulscc  %g1,%o4,%g1
219         mulscc  %g1,%o4,%g1                       231         mulscc  %g1,%o4,%g1
220         mulscc  %g1,%o4,%g1                       232         mulscc  %g1,%o4,%g1
221         mulscc  %g1,%o4,%g1                       233         mulscc  %g1,%o4,%g1
222         mulscc  %g1,%o4,%g1                       234         mulscc  %g1,%o4,%g1
223         mulscc  %g1,%o4,%g1                       235         mulscc  %g1,%o4,%g1
224         mulscc  %g1,%o4,%g1                       236         mulscc  %g1,%o4,%g1
225         mulscc  %g1,%o4,%g1                       237         mulscc  %g1,%o4,%g1
226         mulscc  %g1,%o4,%g1                       238         mulscc  %g1,%o4,%g1
227         mulscc  %g1,%o4,%g1                       239         mulscc  %g1,%o4,%g1
228         mulscc  %g1,%o4,%g1                       240         mulscc  %g1,%o4,%g1
229         mulscc  %g1,%o4,%g1                       241         mulscc  %g1,%o4,%g1
230         mulscc  %g1,%o4,%g1                       242         mulscc  %g1,%o4,%g1
231         mulscc  %g1,%o4,%g1                       243         mulscc  %g1,%o4,%g1
232         mulscc  %g1,%o4,%g1                       244         mulscc  %g1,%o4,%g1
233         mulscc  %g1,%o4,%g1                       245         mulscc  %g1,%o4,%g1
234         mulscc  %g1,%o4,%g1                       246         mulscc  %g1,%o4,%g1
235         mulscc  %g1,%o4,%g1                       247         mulscc  %g1,%o4,%g1
236         mulscc  %g1,%o4,%g1                       248         mulscc  %g1,%o4,%g1
237         mulscc  %g1,%o4,%g1                       249         mulscc  %g1,%o4,%g1
238         mulscc  %g1,%o4,%g1                       250         mulscc  %g1,%o4,%g1
239         mulscc  %g1,0,%g1                         251         mulscc  %g1,0,%g1
240         add     %g1,%g2,%o0                       252         add     %g1,%g2,%o0
241         rd      %y,%o2                            253         rd      %y,%o2
242         cmp %o0,%i0                               254         cmp %o0,%i0
243         bgu,a .LL78                               255         bgu,a .LL78
244         add %o1,-1,%o1                            256         add %o1,-1,%o1
245         bne,a .LL50                               257         bne,a .LL50
246         mov 0,%o2                                 258         mov 0,%o2
247         cmp %o2,%i3                               259         cmp %o2,%i3
248         bleu .LL50                                260         bleu .LL50
249         mov 0,%o2                                 261         mov 0,%o2
250         add %o1,-1,%o1                            262         add %o1,-1,%o1
251 .LL78:                                            263 .LL78:
252         mov 0,%o2                                 264         mov 0,%o2
253 .LL50:                                            265 .LL50:
254         mov %o1,%l1                               266         mov %o1,%l1
255 .LL86:                                            267 .LL86:
256         mov %o2,%l0                               268         mov %o2,%l0
257         mov %l0,%i0                               269         mov %l0,%i0
258         mov %l1,%i1                               270         mov %l1,%i1
259         cmp %l4,0                                 271         cmp %l4,0
260         be .LL81                                  272         be .LL81
261         sub %g0,%i1,%o0                           273         sub %g0,%i1,%o0
262         mov %o0,%l3                               274         mov %o0,%l3
263         subcc %g0,%o0,%g0                         275         subcc %g0,%o0,%g0
264         sub %g0,%i0,%o0                           276         sub %g0,%i0,%o0
265         subx %o0,0,%l2                            277         subx %o0,0,%l2
266         mov %l2,%i0                               278         mov %l2,%i0
267         mov %l3,%i1                               279         mov %l3,%i1
268 .LL81:                                            280 .LL81:
269         ret                                       281         ret
270         restore                                   282         restore
271 EXPORT_SYMBOL(__divdi3)                           283 EXPORT_SYMBOL(__divdi3)
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php