Check for SYS/GL during library init. Reason is that
[AROS.git] / workbench / devs / diskimage / support / m68k / swab2.s
blobeb38361b233477665cb41704a39f7517866cc5a9
1 ; Copyright 2007-2012 Fredrik Wikstrom. All rights reserved.
3 ; Redistribution and use in source and binary forms, with or without
4 ; modification, are permitted provided that the following conditions
5 ; are met:
7 ; 1. Redistributions of source code must retain the above copyright
8 ; notice, this list of conditions and the following disclaimer.
10 ; 2. Redistributions in binary form must reproduce the above copyright
11 ; notice, this list of conditions and the following disclaimer in the
12 ; documentation and/or other materials provided with the distribution.
14 ; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
15 ; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 ; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 ; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18 ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 ; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 ; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 ; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 ; POSSIBILITY OF SUCH DAMAGE.
26 XDEF _swab2
27 _swab2:
28 move.l 4(a7),a0
29 move.l 8(a7),a1
30 move.l 12(a7),d0
31 moveq #3,d1
32 lsr.l #1,d0
33 beq.s exit
34 and.l d0,d1
35 beq.s i0
36 subq.l #1,d1
37 beq.s i1
38 subq.l #1,d1
39 beq.s i2
40 move.w (a0)+,d1
41 rol.w #8,d1
42 move.w d1,(a1)+
43 i2:
44 move.w (a0)+,d1
45 rol.w #8,d1
46 move.w d1,(a1)+
47 i1:
48 move.w (a0)+,d1
49 rol.w #8,d1
50 move.w d1,(a1)+
51 i0:
52 lsr.l #2,d0
53 beq.s exit
54 movem.w d2-d4,-(a7)
55 loop:
56 movem.w (a0)+,d1-d4
57 rol.w #8,d1
58 rol.w #8,d2
59 rol.w #8,d3
60 rol.w #8,d4
61 movem.w d1-d4,(a1)
62 subq.l #1,d0
63 addq.l #8,a1
64 bne.s loop
65 movem.w (a7)+,d2-d4
66 exit:
67 rts