1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
1 ;--------------------------------------------------------
2 ; File Created by SDCC : free open source ANSI-C Compiler
3 ; Version 3.9.3 #11345 (Linux)
4 ;--------------------------------------------------------
5 .module _fseq
6 .optsdcc -mstm8
7
8 ;--------------------------------------------------------
9 ; Public variables in this module
10 ;--------------------------------------------------------
11 .globl ___fseq
12 ;--------------------------------------------------------
13 ; ram data
14 ;--------------------------------------------------------
15 .area DATA
16 ;--------------------------------------------------------
17 ; ram data
18 ;--------------------------------------------------------
19 .area INITIALIZED
20 ;--------------------------------------------------------
21 ; absolute external ram data
22 ;--------------------------------------------------------
23 .area DABS (ABS)
24
25 ; default segment ordering for linker
26 .area HOME
27 .area GSINIT
28 .area GSFINAL
29 .area CONST
30 .area INITIALIZER
31 .area CODE
32
33 ;--------------------------------------------------------
34 ; global & static initialisations
35 ;--------------------------------------------------------
36 .area HOME
37 .area GSINIT
38 .area GSFINAL
39 .area GSINIT
40 ;--------------------------------------------------------
41 ; Home
42 ;--------------------------------------------------------
43 .area HOME
44 .area HOME
45 ;--------------------------------------------------------
46 ; code
47 ;--------------------------------------------------------
48 .area CODE
49 ; ../_fseq.c: 83: __fseq (float a1, float a2)
50 ; -----------------------------------------
51 ; function __fseq
52 ; -----------------------------------------
000000 53 ___fseq:
000000 52 10 [ 2] 54 sub sp, #16
55 ; ../_fseq.c: 87: fl1.f = a1;
000002 16 16 [ 2] 56 ldw y, (0x16, sp)
000004 17 03 [ 2] 57 ldw (0x03, sp), y
000006 16 14 [ 2] 58 ldw y, (0x14, sp)
000008 17 01 [ 2] 59 ldw (0x01, sp), y
60 ; ../_fseq.c: 88: fl2.f = a2;
00000A 16 1A [ 2] 61 ldw y, (0x1a, sp)
00000C 17 07 [ 2] 62 ldw (0x07, sp), y
00000E 16 18 [ 2] 63 ldw y, (0x18, sp)
000010 17 05 [ 2] 64 ldw (0x05, sp), y
65 ; ../_fseq.c: 90: if (fl1.l == fl2.l)
000012 16 03 [ 2] 66 ldw y, (0x03, sp)
000014 17 0B [ 2] 67 ldw (0x0b, sp), y
000016 16 01 [ 2] 68 ldw y, (0x01, sp)
000018 17 09 [ 2] 69 ldw (0x09, sp), y
00001A 16 07 [ 2] 70 ldw y, (0x07, sp)
00001C 17 0F [ 2] 71 ldw (0x0f, sp), y
00001E 16 05 [ 2] 72 ldw y, (0x05, sp)
000020 1E 0B [ 2] 73 ldw x, (0x0b, sp)
000022 13 0F [ 2] 74 cpw x, (0x0f, sp)
000024 26 09 [ 1] 75 jrne 00102$
000026 93 [ 1] 76 ldw x, y
000027 13 09 [ 2] 77 cpw x, (0x09, sp)
000029 26 04 [ 1] 78 jrne 00102$
79 ; ../_fseq.c: 91: return (1);
00002B A6 01 [ 1] 80 ld a, #0x01
00002D 20 2A [ 2] 81 jra 00105$
00002F 82 00102$:
83 ; ../_fseq.c: 92: if (((fl1.l | fl2.l) & 0x7FFFFFFF) == 0)
00002F 16 03 [ 2] 84 ldw y, (0x03, sp)
000031 17 0F [ 2] 85 ldw (0x0f, sp), y
000033 16 01 [ 2] 86 ldw y, (0x01, sp)
000035 17 0D [ 2] 87 ldw (0x0d, sp), y
000037 1E 07 [ 2] 88 ldw x, (0x07, sp)
000039 16 05 [ 2] 89 ldw y, (0x05, sp)
00003B 9F [ 1] 90 ld a, xl
00003C 1A 10 [ 1] 91 or a, (0x10, sp)
00003E 02 [ 1] 92 rlwa x
00003F 1A 0F [ 1] 93 or a, (0x0f, sp)
000041 95 [ 1] 94 ld xh, a
000042 90 9F [ 1] 95 ld a, yl
000044 1A 0E [ 1] 96 or a, (0x0e, sp)
000046 90 02 [ 1] 97 rlwa y
000048 1A 0D [ 1] 98 or a, (0x0d, sp)
00004A A4 7F [ 1] 99 and a, #0x7f
00004C 90 95 [ 1] 100 ld yh, a
00004E 5D [ 2] 101 tnzw x
00004F 26 07 [ 1] 102 jrne 00104$
000051 90 5D [ 2] 103 tnzw y
000053 26 03 [ 1] 104 jrne 00104$
105 ; ../_fseq.c: 93: return (1);
000055 A6 01 [ 1] 106 ld a, #0x01
107 ; ../_fseq.c: 94: return (0);
000057 21 108 .byte 0x21
000058 109 00104$:
000058 4F [ 1] 110 clr a
000059 111 00105$:
112 ; ../_fseq.c: 95: }
000059 5B 10 [ 2] 113 addw sp, #16
00005B 87 [ 5] 114 retf
115 .area CODE
116 .area CONST
117 .area INITIALIZER
118 .area CABS (ABS)
|