ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 1
1 .cpu cortex-m3
2 .eabi_attribute 20, 1
3 .eabi_attribute 21, 1
4 .eabi_attribute 23, 3
5 .eabi_attribute 24, 1
6 .eabi_attribute 25, 1
7 .eabi_attribute 26, 1
8 .eabi_attribute 30, 1
9 .eabi_attribute 34, 1
10 .eabi_attribute 18, 4
11 .file "displayFont.cpp"
12 .text
13 .Ltext0:
14 .cfi_sections .debug_frame
15 .section .text._ZN9display_t11printStringER6font_tPKct8colour_t,"ax",%progbits
16 .align 1
17 .global _ZN9display_t11printStringER6font_tPKct8colour_t
18 .arch armv7-m
19 .syntax unified
20 .thumb
21 .thumb_func
22 .fpu softvfp
24 _ZN9display_t11printStringER6font_tPKct8colour_t:
25 .LVL0:
26 .LFB18:
27 .file 1 "../libOLED/src/displayFont.cpp"
1:../libOLED/src/displayFont.cpp **** #include "libOLED/displayclass.H"
2:../libOLED/src/displayFont.cpp ****
3:../libOLED/src/displayFont.cpp **** void
4:../libOLED/src/displayFont.cpp **** display_t::printString (font_t &font, char const *string, uint16_t length,
5:../libOLED/src/displayFont.cpp **** colour_t colour)
6:../libOLED/src/displayFont.cpp **** {
28 .loc 1 6 1 view -0
29 .cfi_startproc
30 @ args = 4, pretend = 0, frame = 24
31 @ frame_needed = 0, uses_anonymous_args = 0
32 .loc 1 6 1 is_stmt 0 view .LVU1
33 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
34 .LCFI0:
35 .cfi_def_cfa_offset 36
36 .cfi_offset 4, -36
37 .cfi_offset 5, -32
38 .cfi_offset 6, -28
39 .cfi_offset 7, -24
40 .cfi_offset 8, -20
41 .cfi_offset 9, -16
42 .cfi_offset 10, -12
43 .cfi_offset 11, -8
44 .cfi_offset 14, -4
45 0004 87B0 sub sp, sp, #28
46 .LCFI1:
47 .cfi_def_cfa_offset 64
48 0006 8246 mov r10, r0
49 0008 0E46 mov r6, r1
50 000a 0592 str r2, [sp, #20]
51 000c 0393 str r3, [sp, #12]
7:../libOLED/src/displayFont.cpp **** setPixelMode(colour);
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 2
52 .loc 1 7 3 is_stmt 1 view .LVU2
53 .LVL1:
54 .LBB30:
55 .LBI30:
56 .file 2 "../libOLED/inc/libOLED/displayclass.H"
1:../libOLED/inc/libOLED/displayclass.H **** /*
2:../libOLED/inc/libOLED/displayclass.H **** * displayclass.H
3:../libOLED/inc/libOLED/displayclass.H **** *
4:../libOLED/inc/libOLED/displayclass.H **** * Created on: 31 Oct 2020
5:../libOLED/inc/libOLED/displayclass.H **** * Author: mike
6:../libOLED/inc/libOLED/displayclass.H **** */
7:../libOLED/inc/libOLED/displayclass.H ****
8:../libOLED/inc/libOLED/displayclass.H **** #pragma once
9:../libOLED/inc/libOLED/displayclass.H **** #include <cstdint>
10:../libOLED/inc/libOLED/displayclass.H **** #include "libOLED/fontclass.H"
11:../libOLED/inc/libOLED/displayclass.H ****
12:../libOLED/inc/libOLED/displayclass.H **** inline int constexpr
13:../libOLED/inc/libOLED/displayclass.H **** dataSize (int const width, int const height)
14:../libOLED/inc/libOLED/displayclass.H **** {
15:../libOLED/inc/libOLED/displayclass.H **** return (width * height / 8);
16:../libOLED/inc/libOLED/displayclass.H **** }
17:../libOLED/inc/libOLED/displayclass.H ****
18:../libOLED/inc/libOLED/displayclass.H **** enum colour_t
19:../libOLED/inc/libOLED/displayclass.H **** {
20:../libOLED/inc/libOLED/displayclass.H **** BLACK, /* and 0, invert 0 */
21:../libOLED/inc/libOLED/displayclass.H **** WHITE, /* and 0, invert 1 */
22:../libOLED/inc/libOLED/displayclass.H **** OVERLAY, /* and 1, invert 0 */
23:../libOLED/inc/libOLED/displayclass.H **** INVERT, /* and 1, invert 1 */
24:../libOLED/inc/libOLED/displayclass.H **** };
25:../libOLED/inc/libOLED/displayclass.H ****
26:../libOLED/inc/libOLED/displayclass.H **** class display_t
27:../libOLED/inc/libOLED/displayclass.H **** {
28:../libOLED/inc/libOLED/displayclass.H **** public:
29:../libOLED/inc/libOLED/displayclass.H **** display_t (int const width, int const height, int const ramwidth,
30:../libOLED/inc/libOLED/displayclass.H **** uint8_t *const data);
31:../libOLED/inc/libOLED/displayclass.H ****
32:../libOLED/inc/libOLED/displayclass.H **** virtual
33:../libOLED/inc/libOLED/displayclass.H **** ~display_t ();
34:../libOLED/inc/libOLED/displayclass.H ****
35:../libOLED/inc/libOLED/displayclass.H **** uint8_t
36:../libOLED/inc/libOLED/displayclass.H **** getRotation ();
37:../libOLED/inc/libOLED/displayclass.H **** int16_t
38:../libOLED/inc/libOLED/displayclass.H **** width ();
39:../libOLED/inc/libOLED/displayclass.H **** int16_t
40:../libOLED/inc/libOLED/displayclass.H **** height ();
41:../libOLED/inc/libOLED/displayclass.H ****
42:../libOLED/inc/libOLED/displayclass.H **** // common hardware reset .
43:../libOLED/inc/libOLED/displayclass.H **** void reset();
44:../libOLED/inc/libOLED/displayclass.H ****
45:../libOLED/inc/libOLED/displayclass.H **** void
46:../libOLED/inc/libOLED/displayclass.H **** init ();
47:../libOLED/inc/libOLED/displayclass.H ****
48:../libOLED/inc/libOLED/displayclass.H **** /// \brief Clear display to colour
49:../libOLED/inc/libOLED/displayclass.H **** void
50:../libOLED/inc/libOLED/displayclass.H **** clearDisplay (colour_t colour = colour_t::BLACK);
51:../libOLED/inc/libOLED/displayclass.H **** void
52:../libOLED/inc/libOLED/displayclass.H **** invertDisplay (uint8_t i);
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 3
53:../libOLED/inc/libOLED/displayclass.H **** void
54:../libOLED/inc/libOLED/displayclass.H **** display ();
55:../libOLED/inc/libOLED/displayclass.H ****
56:../libOLED/inc/libOLED/displayclass.H **** void
57:../libOLED/inc/libOLED/displayclass.H **** startscrollright (uint8_t start, uint8_t stop);
58:../libOLED/inc/libOLED/displayclass.H **** void
59:../libOLED/inc/libOLED/displayclass.H **** startscrollleft (uint8_t start, uint8_t stop);
60:../libOLED/inc/libOLED/displayclass.H ****
61:../libOLED/inc/libOLED/displayclass.H **** void
62:../libOLED/inc/libOLED/displayclass.H **** startscrolldiagright (uint8_t start, uint8_t stop);
63:../libOLED/inc/libOLED/displayclass.H **** void
64:../libOLED/inc/libOLED/displayclass.H **** startscrolldiagleft (uint8_t start, uint8_t stop);
65:../libOLED/inc/libOLED/displayclass.H **** void
66:../libOLED/inc/libOLED/displayclass.H **** stopscroll (void);
67:../libOLED/inc/libOLED/displayclass.H ****
68:../libOLED/inc/libOLED/displayclass.H **** void
69:../libOLED/inc/libOLED/displayclass.H **** dim (uint8_t contrast);
70:../libOLED/inc/libOLED/displayclass.H ****
71:../libOLED/inc/libOLED/displayclass.H **** // set drawing mode
72:../libOLED/inc/libOLED/displayclass.H **** void setPixelMode(colour_t colour)
57 .loc 2 72 8 view .LVU3
58 .LBB31:
73:../libOLED/inc/libOLED/displayclass.H **** { m_colour = colour; }
59 .loc 2 73 5 view .LVU4
60 .loc 2 73 14 is_stmt 0 view .LVU5
61 000e 9DF84030 ldrb r3, [sp, #64] @ zero_extendqisi2
62 .LVL2:
63 .loc 2 73 14 view .LVU6
64 0012 0377 strb r3, [r0, #28]
65 .LVL3:
66 .loc 2 73 14 view .LVU7
67 .LBE31:
68 .LBE30:
8:../libOLED/src/displayFont.cpp **** uint16_t const xSpacing = font.width () + 1;
69 .loc 1 8 3 is_stmt 1 view .LVU8
70 .LBB32:
71 .LBI32:
72 .file 3 "../libOLED/inc/libOLED/fontclass.H"
1:../libOLED/inc/libOLED/fontclass.H **** // font class library
2:../libOLED/inc/libOLED/fontclass.H **** #pragma once
3:../libOLED/inc/libOLED/fontclass.H **** #include <cstdint>
4:../libOLED/inc/libOLED/fontclass.H ****
5:../libOLED/inc/libOLED/fontclass.H **** class font_t
6:../libOLED/inc/libOLED/fontclass.H **** {
7:../libOLED/inc/libOLED/fontclass.H **** public:
8:../libOLED/inc/libOLED/fontclass.H **** /// \param height - pixel character height
9:../libOLED/inc/libOLED/fontclass.H **** /// \param width - pixel character width
10:../libOLED/inc/libOLED/fontclass.H **** /// \param spacing - character to character spacing
11:../libOLED/inc/libOLED/fontclass.H **** /// \param chars - number of characters in character set
12:../libOLED/inc/libOLED/fontclass.H **** /// \param data - constant data
13:../libOLED/inc/libOLED/fontclass.H **** font_t (uint8_t const height, uint8_t const width,
14:../libOLED/inc/libOLED/fontclass.H **** uint8_t const spacing, uint8_t const chars,
15:../libOLED/inc/libOLED/fontclass.H **** char const *data) :
16:../libOLED/inc/libOLED/fontclass.H **** m_height (height), m_width (width), m_spacing (spacing), m_chars (chars), m_data (
17:../libOLED/inc/libOLED/fontclass.H **** data)
18:../libOLED/inc/libOLED/fontclass.H **** {
19:../libOLED/inc/libOLED/fontclass.H **** }
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 4
20:../libOLED/inc/libOLED/fontclass.H ****
21:../libOLED/inc/libOLED/fontclass.H **** virtual char
22:../libOLED/inc/libOLED/fontclass.H **** getPixel (char c, int x, int y) =0;
23:../libOLED/inc/libOLED/fontclass.H ****
24:../libOLED/inc/libOLED/fontclass.H **** // character width
25:../libOLED/inc/libOLED/fontclass.H **** uint8_t
26:../libOLED/inc/libOLED/fontclass.H **** width ()
73 .loc 3 26 3 view .LVU9
74 .LBB33:
27:../libOLED/inc/libOLED/fontclass.H **** {
28:../libOLED/inc/libOLED/fontclass.H **** return m_width;
75 .loc 3 28 5 view .LVU10
76 .loc 3 28 5 is_stmt 0 view .LVU11
77 .LBE33:
78 .LBE32:
79 .loc 1 8 40 view .LVU12
80 0014 4B79 ldrb r3, [r1, #5] @ zero_extendqisi2
81 .loc 1 8 45 view .LVU13
82 0016 0133 adds r3, r3, #1
83 0018 0493 str r3, [sp, #16]
84 .LVL4:
9:../libOLED/src/displayFont.cpp **** for (uint16_t yt = 0; yt < font.height (); yt++) // iterate down scan lines
85 .loc 1 9 3 is_stmt 1 view .LVU14
86 .LBB34:
87 .loc 1 9 17 is_stmt 0 view .LVU15
88 001a 0023 movs r3, #0
89 001c 0193 str r3, [sp, #4]
90 001e 31E0 b .L7
91 .LVL5:
92 .L4:
93 .LBB35:
94 .LBB36:
10:../libOLED/src/displayFont.cpp **** {
11:../libOLED/src/displayFont.cpp **** uint16_t ys = m_cursor_y + yt;
12:../libOLED/src/displayFont.cpp **** for (uint16_t xt = 0; xt < length; xt++)
95 .loc 1 12 7 discriminator 2 view .LVU16
96 0020 0BF1010B add fp, fp, #1
97 .LVL6:
98 .loc 1 12 7 discriminator 2 view .LVU17
99 0024 1FFA8BFB uxth fp, fp
100 .LVL7:
101 .L6:
102 .loc 1 12 32 discriminator 1 view .LVU18
103 0028 039B ldr r3, [sp, #12]
104 002a 9B45 cmp fp, r3
105 002c 26D2 bcs .L3
106 .LBB37:
13:../libOLED/src/displayFont.cpp **** {
14:../libOLED/src/displayFont.cpp **** unsigned char c = string[xt];
107 .loc 1 14 4 is_stmt 1 view .LVU19
108 .loc 1 14 18 is_stmt 0 view .LVU20
109 002e 059B ldr r3, [sp, #20]
110 0030 13F80B90 ldrb r9, [r3, fp] @ zero_extendqisi2
111 .LVL8:
15:../libOLED/src/displayFont.cpp **** uint16_t xs = xt * xSpacing + m_cursor_x;
112 .loc 1 15 4 is_stmt 1 view .LVU21
113 .loc 1 15 21 is_stmt 0 view .LVU22
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 5
114 0034 049B ldr r3, [sp, #16]
115 0036 03FB0BF8 mul r8, r3, fp
116 003a 1FFA88F8 uxth r8, r8
117 .loc 1 15 32 view .LVU23
118 003e BAF81030 ldrh r3, [r10, #16]
119 .loc 1 15 13 view .LVU24
120 0042 9844 add r8, r8, r3
121 0044 1FFA88F8 uxth r8, r8
122 .LVL9:
16:../libOLED/src/displayFont.cpp **** for (uint16_t j = 0; j < font.spacing (); j++)
123 .loc 1 16 4 is_stmt 1 view .LVU25
124 .LBB38:
125 .loc 1 16 18 is_stmt 0 view .LVU26
126 0048 0024 movs r4, #0
127 .LVL10:
128 .L5:
129 .LBB39:
130 .LBI39:
29:../libOLED/inc/libOLED/fontclass.H **** }
30:../libOLED/inc/libOLED/fontclass.H ****
31:../libOLED/inc/libOLED/fontclass.H **** // character height
32:../libOLED/inc/libOLED/fontclass.H **** uint8_t
33:../libOLED/inc/libOLED/fontclass.H **** height ()
34:../libOLED/inc/libOLED/fontclass.H **** {
35:../libOLED/inc/libOLED/fontclass.H **** return m_height;
36:../libOLED/inc/libOLED/fontclass.H **** }
37:../libOLED/inc/libOLED/fontclass.H ****
38:../libOLED/inc/libOLED/fontclass.H **** uint8_t
39:../libOLED/inc/libOLED/fontclass.H **** chars ()
40:../libOLED/inc/libOLED/fontclass.H **** {
41:../libOLED/inc/libOLED/fontclass.H **** return m_chars;
42:../libOLED/inc/libOLED/fontclass.H **** }
43:../libOLED/inc/libOLED/fontclass.H ****
44:../libOLED/inc/libOLED/fontclass.H **** uint8_t
45:../libOLED/inc/libOLED/fontclass.H **** spacing ()
131 .loc 3 45 3 is_stmt 1 discriminator 3 view .LVU27
132 .LBB40:
46:../libOLED/inc/libOLED/fontclass.H **** {
47:../libOLED/inc/libOLED/fontclass.H **** return m_spacing;
133 .loc 3 47 5 discriminator 3 view .LVU28
134 .loc 3 47 5 is_stmt 0 discriminator 3 view .LVU29
135 .LBE40:
136 .LBE39:
137 .loc 1 16 27 discriminator 3 view .LVU30
138 004a B379 ldrb r3, [r6, #6] @ zero_extendqisi2
139 004c A342 cmp r3, r4
140 004e E7D9 bls .L4
17:../libOLED/src/displayFont.cpp **** {
18:../libOLED/src/displayFont.cpp **** drawPixel (j + xs, ys, font.getPixel (c, j, yt));
141 .loc 1 18 9 is_stmt 1 discriminator 2 view .LVU31
142 .loc 1 18 22 is_stmt 0 discriminator 2 view .LVU32
143 0050 04EB0805 add r5, r4, r8
144 0054 ADB2 uxth r5, r5
145 .loc 1 18 55 discriminator 2 view .LVU33
146 0056 3368 ldr r3, [r6]
147 0058 1F68 ldr r7, [r3]
148 .loc 1 18 46 discriminator 2 view .LVU34
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 6
149 005a 019B ldr r3, [sp, #4]
150 005c 2246 mov r2, r4
151 005e 4946 mov r1, r9
152 0060 3046 mov r0, r6
153 0062 B847 blx r7
154 .LVL11:
155 .loc 1 18 19 discriminator 2 view .LVU35
156 0064 031C adds r3, r0, #0
157 0066 18BF it ne
158 0068 0123 movne r3, #1
159 006a BDF90820 ldrsh r2, [sp, #8]
160 006e 29B2 sxth r1, r5
161 0070 5046 mov r0, r10
162 0072 FFF7FEFF bl _ZN9display_t9drawPixelEssb
163 .LVL12:
16:../libOLED/src/displayFont.cpp **** {
164 .loc 1 16 4 discriminator 2 view .LVU36
165 0076 0134 adds r4, r4, #1
166 .LVL13:
16:../libOLED/src/displayFont.cpp **** {
167 .loc 1 16 4 discriminator 2 view .LVU37
168 0078 A4B2 uxth r4, r4
169 .LVL14:
16:../libOLED/src/displayFont.cpp **** {
170 .loc 1 16 4 discriminator 2 view .LVU38
171 007a E6E7 b .L5
172 .LVL15:
173 .L3:
16:../libOLED/src/displayFont.cpp **** {
174 .loc 1 16 4 discriminator 2 view .LVU39
175 .LBE38:
176 .LBE37:
177 .LBE36:
178 .LBE35:
9:../libOLED/src/displayFont.cpp **** {
179 .loc 1 9 3 discriminator 2 view .LVU40
180 007c 019B ldr r3, [sp, #4]
181 007e 0133 adds r3, r3, #1
182 0080 9BB2 uxth r3, r3
183 0082 0193 str r3, [sp, #4]
184 .LVL16:
185 .L7:
186 .LBB42:
187 .LBI42:
33:../libOLED/inc/libOLED/fontclass.H **** {
188 .loc 3 33 3 is_stmt 1 discriminator 1 view .LVU41
189 .LBB43:
35:../libOLED/inc/libOLED/fontclass.H **** }
190 .loc 3 35 5 discriminator 1 view .LVU42
35:../libOLED/inc/libOLED/fontclass.H **** }
191 .loc 3 35 5 is_stmt 0 discriminator 1 view .LVU43
192 .LBE43:
193 .LBE42:
9:../libOLED/src/displayFont.cpp **** {
194 .loc 1 9 28 discriminator 1 view .LVU44
195 0084 3379 ldrb r3, [r6, #4] @ zero_extendqisi2
196 0086 019A ldr r2, [sp, #4]
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 7
197 0088 9342 cmp r3, r2
198 008a 07D9 bls .L2
199 .LBB44:
11:../libOLED/src/displayFont.cpp **** for (uint16_t xt = 0; xt < length; xt++)
200 .loc 1 11 7 is_stmt 1 view .LVU45
11:../libOLED/src/displayFont.cpp **** for (uint16_t xt = 0; xt < length; xt++)
201 .loc 1 11 32 is_stmt 0 view .LVU46
202 008c BAF81430 ldrh r3, [r10, #20]
11:../libOLED/src/displayFont.cpp **** for (uint16_t xt = 0; xt < length; xt++)
203 .loc 1 11 16 view .LVU47
204 0090 1344 add r3, r3, r2
205 0092 9BB2 uxth r3, r3
206 0094 0293 str r3, [sp, #8]
207 .LVL17:
12:../libOLED/src/displayFont.cpp **** {
208 .loc 1 12 7 is_stmt 1 view .LVU48
209 .LBB41:
12:../libOLED/src/displayFont.cpp **** {
210 .loc 1 12 21 is_stmt 0 view .LVU49
211 0096 4FF0000B mov fp, #0
212 009a C5E7 b .L6
213 .LVL18:
214 .L2:
12:../libOLED/src/displayFont.cpp **** {
215 .loc 1 12 21 view .LVU50
216 .LBE41:
217 .LBE44:
218 .LBE34:
19:../libOLED/src/displayFont.cpp **** }
20:../libOLED/src/displayFont.cpp **** }
21:../libOLED/src/displayFont.cpp **** }
22:../libOLED/src/displayFont.cpp **** // move the cursor.
23:../libOLED/src/displayFont.cpp **** m_cursor_x += xSpacing * length;
219 .loc 1 23 3 is_stmt 1 view .LVU51
220 .loc 1 23 14 is_stmt 0 view .LVU52
221 009c DAF81030 ldr r3, [r10, #16]
222 00a0 049A ldr r2, [sp, #16]
223 00a2 0399 ldr r1, [sp, #12]
224 00a4 01FB0233 mla r3, r1, r2, r3
225 00a8 CAF81030 str r3, [r10, #16]
24:../libOLED/src/displayFont.cpp **** }
226 .loc 1 24 1 view .LVU53
227 00ac 07B0 add sp, sp, #28
228 .LCFI2:
229 .cfi_def_cfa_offset 36
230 @ sp needed
231 00ae BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
232 .loc 1 24 1 view .LVU54
233 .cfi_endproc
234 .LFE18:
236 .section .text._ZN9display_t17printScaledStringER6font_tPKctt8colour_t,"ax",%progbits
237 .align 1
238 .global _ZN9display_t17printScaledStringER6font_tPKctt8colour_t
239 .syntax unified
240 .thumb
241 .thumb_func
242 .fpu softvfp
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 8
244 _ZN9display_t17printScaledStringER6font_tPKctt8colour_t:
245 .LVL19:
246 .LFB19:
25:../libOLED/src/displayFont.cpp ****
26:../libOLED/src/displayFont.cpp **** // scale is multiplied by 256
27:../libOLED/src/displayFont.cpp **** void
28:../libOLED/src/displayFont.cpp **** display_t::printScaledString (font_t &font, char const *string,
29:../libOLED/src/displayFont.cpp **** uint16_t length, uint16_t scale,
30:../libOLED/src/displayFont.cpp **** colour_t colour)
31:../libOLED/src/displayFont.cpp **** {
247 .loc 1 31 1 is_stmt 1 view -0
248 .cfi_startproc
249 @ args = 8, pretend = 0, frame = 16
250 @ frame_needed = 0, uses_anonymous_args = 0
251 .loc 1 31 1 is_stmt 0 view .LVU56
252 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
253 .LCFI3:
254 .cfi_def_cfa_offset 36
255 .cfi_offset 4, -36
256 .cfi_offset 5, -32
257 .cfi_offset 6, -28
258 .cfi_offset 7, -24
259 .cfi_offset 8, -20
260 .cfi_offset 9, -16
261 .cfi_offset 10, -12
262 .cfi_offset 11, -8
263 .cfi_offset 14, -4
264 0004 85B0 sub sp, sp, #20
265 .LCFI4:
266 .cfi_def_cfa_offset 56
267 0006 BDF838A0 ldrh r10, [sp, #56]
32:../libOLED/src/displayFont.cpp **** uint16_t xt, yt, jt, curr_x=0;
268 .loc 1 32 3 is_stmt 1 view .LVU57
269 .LVL20:
33:../libOLED/src/displayFont.cpp **** uint16_t curr_y = m_cursor_y;
270 .loc 1 33 3 view .LVU58
271 .loc 1 33 12 is_stmt 0 view .LVU59
272 000a 848A ldrh r4, [r0, #20]
273 000c 0194 str r4, [sp, #4]
274 .LVL21:
34:../libOLED/src/displayFont.cpp **** if (scale < 1)
275 .loc 1 34 3 is_stmt 1 view .LVU60
276 000e BAF1000F cmp r10, #0
277 0012 44D0 beq .L9
278 0014 0393 str r3, [sp, #12]
279 0016 9346 mov fp, r2
280 0018 0E46 mov r6, r1
281 001a 0290 str r0, [sp, #8]
35:../libOLED/src/displayFont.cpp **** return;
36:../libOLED/src/displayFont.cpp **** setPixelMode(colour);
282 .loc 1 36 3 view .LVU61
283 .LVL22:
284 .LBB45:
285 .LBI45:
72:../libOLED/inc/libOLED/displayclass.H **** { m_colour = colour; }
286 .loc 2 72 8 view .LVU62
287 .LBB46:
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 9
288 .loc 2 73 5 view .LVU63
289 .loc 2 73 14 is_stmt 0 view .LVU64
290 001c 9DF83C30 ldrb r3, [sp, #60] @ zero_extendqisi2
291 .LVL23:
292 .loc 2 73 14 view .LVU65
293 0020 0377 strb r3, [r0, #28]
294 .LVL24:
295 .loc 2 73 14 view .LVU66
296 .LBE46:
297 .LBE45:
37:../libOLED/src/displayFont.cpp ****
38:../libOLED/src/displayFont.cpp **** for (yt = 0; yt < font.height () * 256; yt += scale) // iterate down scan lines
298 .loc 1 38 3 is_stmt 1 view .LVU67
32:../libOLED/src/displayFont.cpp **** uint16_t curr_y = m_cursor_y;
299 .loc 1 32 24 is_stmt 0 view .LVU68
300 0022 0025 movs r5, #0
301 .LBB47:
302 .loc 1 38 11 view .LVU69
303 0024 A946 mov r9, r5
304 0026 29E0 b .L16
305 .LVL25:
306 .L13:
307 .LBB48:
308 .LBB49:
39:../libOLED/src/displayFont.cpp **** {
40:../libOLED/src/displayFont.cpp **** // iterate along the string
41:../libOLED/src/displayFont.cpp **** // local x plotting coordinate
42:../libOLED/src/displayFont.cpp **** curr_x = m_cursor_x;
43:../libOLED/src/displayFont.cpp **** for (xt = 0; xt < length; xt++)
309 .loc 1 43 7 discriminator 2 view .LVU70
310 0028 08F10108 add r8, r8, #1
311 .LVL26:
312 .loc 1 43 7 discriminator 2 view .LVU71
313 002c 1FFA88F8 uxth r8, r8
314 .LVL27:
315 .L15:
316 .loc 1 43 23 discriminator 1 view .LVU72
317 0030 039B ldr r3, [sp, #12]
318 0032 9845 cmp r8, r3
319 0034 1BD2 bcs .L12
320 .LBB50:
44:../libOLED/src/displayFont.cpp **** {
45:../libOLED/src/displayFont.cpp **** for (jt = 0; jt < (font.spacing ()) * 256; jt += scale)
321 .loc 1 45 12 view .LVU73
322 0036 0024 movs r4, #0
323 .L14:
324 .LVL28:
325 .LBB51:
326 .LBI51:
45:../libOLED/inc/libOLED/fontclass.H **** {
327 .loc 3 45 3 is_stmt 1 discriminator 3 view .LVU74
328 .LBB52:
329 .loc 3 47 5 discriminator 3 view .LVU75
330 .loc 3 47 12 is_stmt 0 discriminator 3 view .LVU76
331 0038 B379 ldrb r3, [r6, #6] @ zero_extendqisi2
332 .LVL29:
333 .loc 3 47 12 discriminator 3 view .LVU77
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 10
334 .LBE52:
335 .LBE51:
336 .loc 1 45 20 discriminator 3 view .LVU78
337 003a B4EB032F cmp r4, r3, lsl #8
338 003e F3DA bge .L13
339 .LBB53:
46:../libOLED/src/displayFont.cpp **** {
47:../libOLED/src/displayFont.cpp **** unsigned char c = (string[xt]);
340 .loc 1 47 8 is_stmt 1 discriminator 2 view .LVU79
341 .LVL30:
48:../libOLED/src/displayFont.cpp **** drawPixel (curr_x, curr_y, font.getPixel (c, jt / 256, yt / 256));
342 .loc 1 48 8 discriminator 2 view .LVU80
343 .loc 1 48 71 is_stmt 0 discriminator 2 view .LVU81
344 0040 3368 ldr r3, [r6]
345 0042 1F68 ldr r7, [r3]
346 .loc 1 48 49 discriminator 2 view .LVU82
347 0044 4FEA1923 lsr r3, r9, #8
348 0048 220A lsrs r2, r4, #8
349 004a 1BF80810 ldrb r1, [fp, r8] @ zero_extendqisi2
350 .LVL31:
351 .loc 1 48 49 discriminator 2 view .LVU83
352 004e 3046 mov r0, r6
353 0050 B847 blx r7
354 .LVL32:
355 .loc 1 48 18 discriminator 2 view .LVU84
356 0052 031C adds r3, r0, #0
357 0054 18BF it ne
358 0056 0123 movne r3, #1
359 0058 BDF90420 ldrsh r2, [sp, #4]
360 005c 29B2 sxth r1, r5
361 005e 0298 ldr r0, [sp, #8]
362 0060 FFF7FEFF bl _ZN9display_t9drawPixelEssb
363 .LVL33:
49:../libOLED/src/displayFont.cpp **** curr_x++;
364 .loc 1 49 8 is_stmt 1 discriminator 2 view .LVU85
365 .loc 1 49 14 is_stmt 0 discriminator 2 view .LVU86
366 0064 0135 adds r5, r5, #1
367 .LVL34:
368 .loc 1 49 14 discriminator 2 view .LVU87
369 0066 ADB2 uxth r5, r5
370 .LVL35:
371 .loc 1 49 14 discriminator 2 view .LVU88
372 .LBE53:
45:../libOLED/src/displayFont.cpp **** {
373 .loc 1 45 50 discriminator 2 view .LVU89
374 0068 5444 add r4, r4, r10
375 .LVL36:
45:../libOLED/src/displayFont.cpp **** {
376 .loc 1 45 50 discriminator 2 view .LVU90
377 006a A4B2 uxth r4, r4
378 .LVL37:
45:../libOLED/src/displayFont.cpp **** {
379 .loc 1 45 4 discriminator 2 view .LVU91
380 006c E4E7 b .L14
381 .LVL38:
382 .L12:
45:../libOLED/src/displayFont.cpp **** {
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 11
383 .loc 1 45 4 discriminator 2 view .LVU92
384 .LBE50:
385 .LBE49:
50:../libOLED/src/displayFont.cpp **** }
51:../libOLED/src/displayFont.cpp **** }
52:../libOLED/src/displayFont.cpp **** curr_y++;
386 .loc 1 52 7 is_stmt 1 discriminator 2 view .LVU93
387 .loc 1 52 13 is_stmt 0 discriminator 2 view .LVU94
388 006e 019B ldr r3, [sp, #4]
389 0070 0133 adds r3, r3, #1
390 0072 9BB2 uxth r3, r3
391 0074 0193 str r3, [sp, #4]
392 .LVL39:
393 .loc 1 52 13 discriminator 2 view .LVU95
394 .LBE48:
38:../libOLED/src/displayFont.cpp **** {
395 .loc 1 38 46 discriminator 2 view .LVU96
396 0076 D144 add r9, r9, r10
397 .LVL40:
38:../libOLED/src/displayFont.cpp **** {
398 .loc 1 38 46 discriminator 2 view .LVU97
399 0078 1FFA89F9 uxth r9, r9
400 .LVL41:
401 .L16:
402 .LBB55:
403 .LBI55:
33:../libOLED/inc/libOLED/fontclass.H **** {
404 .loc 3 33 3 is_stmt 1 discriminator 1 view .LVU98
405 .LBB56:
35:../libOLED/inc/libOLED/fontclass.H **** }
406 .loc 3 35 5 discriminator 1 view .LVU99
35:../libOLED/inc/libOLED/fontclass.H **** }
407 .loc 3 35 12 is_stmt 0 discriminator 1 view .LVU100
408 007c 3379 ldrb r3, [r6, #4] @ zero_extendqisi2
409 .LVL42:
35:../libOLED/inc/libOLED/fontclass.H **** }
410 .loc 3 35 12 discriminator 1 view .LVU101
411 .LBE56:
412 .LBE55:
38:../libOLED/src/displayFont.cpp **** {
413 .loc 1 38 19 discriminator 1 view .LVU102
414 007e B9EB032F cmp r9, r3, lsl #8
415 0082 04DA bge .L11
416 .LBB57:
42:../libOLED/src/displayFont.cpp **** for (xt = 0; xt < length; xt++)
417 .loc 1 42 7 is_stmt 1 view .LVU103
42:../libOLED/src/displayFont.cpp **** for (xt = 0; xt < length; xt++)
418 .loc 1 42 14 is_stmt 0 view .LVU104
419 0084 029B ldr r3, [sp, #8]
420 0086 1D8A ldrh r5, [r3, #16]
421 .LVL43:
43:../libOLED/src/displayFont.cpp **** {
422 .loc 1 43 7 is_stmt 1 view .LVU105
423 .LBB54:
43:../libOLED/src/displayFont.cpp **** {
424 .loc 1 43 15 is_stmt 0 view .LVU106
425 0088 4FF00008 mov r8, #0
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 12
426 008c D0E7 b .L15
427 .LVL44:
428 .L11:
43:../libOLED/src/displayFont.cpp **** {
429 .loc 1 43 15 view .LVU107
430 .LBE54:
431 .LBE57:
432 .LBE47:
53:../libOLED/src/displayFont.cpp **** }
54:../libOLED/src/displayFont.cpp **** if (curr_x > width ())
433 .loc 1 54 3 is_stmt 1 view .LVU108
434 .loc 1 54 22 is_stmt 0 view .LVU109
435 008e 0298 ldr r0, [sp, #8]
436 0090 FFF7FEFF bl _ZN9display_t5widthEv
437 .LVL45:
438 .loc 1 54 3 view .LVU110
439 0094 8542 cmp r5, r0
440 0096 00DD ble .L17
55:../libOLED/src/displayFont.cpp **** {
56:../libOLED/src/displayFont.cpp **** curr_x = 0;
441 .loc 1 56 14 view .LVU111
442 0098 0025 movs r5, #0
443 .LVL46:
444 .L17:
57:../libOLED/src/displayFont.cpp **** }
58:../libOLED/src/displayFont.cpp **** m_cursor_x = curr_x;
445 .loc 1 58 3 is_stmt 1 view .LVU112
446 .loc 1 58 14 is_stmt 0 view .LVU113
447 009a 029B ldr r3, [sp, #8]
448 009c 1D61 str r5, [r3, #16]
449 .LVL47:
450 .L9:
59:../libOLED/src/displayFont.cpp **** }
451 .loc 1 59 1 view .LVU114
452 009e 05B0 add sp, sp, #20
453 .LCFI5:
454 .cfi_def_cfa_offset 36
455 @ sp needed
456 00a0 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
457 .loc 1 59 1 view .LVU115
458 .cfi_endproc
459 .LFE19:
461 .section .text._ZN9display_t9formatNumEPchhhi,"ax",%progbits
462 .align 1
463 .global _ZN9display_t9formatNumEPchhhi
464 .syntax unified
465 .thumb
466 .thumb_func
467 .fpu softvfp
469 _ZN9display_t9formatNumEPchhhi:
470 .LVL48:
471 .LFB20:
60:../libOLED/src/displayFont.cpp ****
61:../libOLED/src/displayFont.cpp **** uint8_t
62:../libOLED/src/displayFont.cpp **** display_t::formatNum (char *buff, uint8_t siz, uint8_t digits, uint8_t dp_pos, int val)
63:../libOLED/src/displayFont.cpp **** {
472 .loc 1 63 1 is_stmt 1 view -0
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 13
473 .cfi_startproc
474 @ args = 8, pretend = 0, frame = 0
475 @ frame_needed = 0, uses_anonymous_args = 0
476 .loc 1 63 1 is_stmt 0 view .LVU117
477 0000 F0B5 push {r4, r5, r6, r7, lr}
478 .LCFI6:
479 .cfi_def_cfa_offset 20
480 .cfi_offset 4, -20
481 .cfi_offset 5, -16
482 .cfi_offset 6, -12
483 .cfi_offset 7, -8
484 .cfi_offset 14, -4
485 0002 9DF814C0 ldrb ip, [sp, #20] @ zero_extendqisi2
486 0006 069E ldr r6, [sp, #24]
64:../libOLED/src/displayFont.cpp **** if(dp_pos != NO_DECIMAL)
487 .loc 1 64 3 is_stmt 1 view .LVU118
488 0008 BCF1FF0F cmp ip, #255
489 000c 0CD0 beq .L28
65:../libOLED/src/displayFont.cpp **** digits++;
490 .loc 1 65 3 view .LVU119
491 .loc 1 65 9 is_stmt 0 view .LVU120
492 000e 581C adds r0, r3, #1
493 .LVL49:
494 .loc 1 65 9 view .LVU121
495 0010 C0B2 uxtb r0, r0
496 .LVL50:
497 .L21:
66:../libOLED/src/displayFont.cpp **** uint8_t pos = digits;
498 .loc 1 66 3 is_stmt 1 view .LVU122
67:../libOLED/src/displayFont.cpp **** uint8_t dp_loc = pos - dp_pos;
499 .loc 1 67 3 view .LVU123
500 .loc 1 67 11 is_stmt 0 view .LVU124
501 0012 A0EB0C0C sub ip, r0, ip
502 0016 5FFA8CFC uxtb ip, ip
503 .LVL51:
68:../libOLED/src/displayFont.cpp **** uint8_t sign = 0;
504 .loc 1 68 3 is_stmt 1 view .LVU125
69:../libOLED/src/displayFont.cpp **** if (val < 0)
505 .loc 1 69 3 view .LVU126
506 001a 002E cmp r6, #0
507 001c 06DB blt .L31
68:../libOLED/src/displayFont.cpp **** uint8_t sign = 0;
508 .loc 1 68 11 is_stmt 0 view .LVU127
509 001e 0023 movs r3, #0
510 .LVL52:
511 .L22:
70:../libOLED/src/displayFont.cpp **** {
71:../libOLED/src/displayFont.cpp **** sign = 1;
72:../libOLED/src/displayFont.cpp **** val = -val;
73:../libOLED/src/displayFont.cpp **** }
74:../libOLED/src/displayFont.cpp ****
75:../libOLED/src/displayFont.cpp **** buff[pos] = 0;
512 .loc 1 75 3 is_stmt 1 view .LVU128
513 .loc 1 75 13 is_stmt 0 view .LVU129
514 0020 0024 movs r4, #0
515 0022 0C54 strb r4, [r1, r0]
66:../libOLED/src/displayFont.cpp **** uint8_t dp_loc = pos - dp_pos;
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 14
516 .loc 1 66 11 view .LVU130
517 0024 0546 mov r5, r0
518 0026 08E0 b .L23
519 .LVL53:
520 .L28:
66:../libOLED/src/displayFont.cpp **** uint8_t dp_loc = pos - dp_pos;
521 .loc 1 66 11 view .LVU131
522 0028 1846 mov r0, r3
523 .LVL54:
66:../libOLED/src/displayFont.cpp **** uint8_t dp_loc = pos - dp_pos;
524 .loc 1 66 11 view .LVU132
525 002a F2E7 b .L21
526 .LVL55:
527 .L31:
71:../libOLED/src/displayFont.cpp **** val = -val;
528 .loc 1 71 7 is_stmt 1 view .LVU133
72:../libOLED/src/displayFont.cpp **** }
529 .loc 1 72 7 view .LVU134
72:../libOLED/src/displayFont.cpp **** }
530 .loc 1 72 11 is_stmt 0 view .LVU135
531 002c 7642 rsbs r6, r6, #0
532 .LVL56:
71:../libOLED/src/displayFont.cpp **** val = -val;
533 .loc 1 71 12 view .LVU136
534 002e 0123 movs r3, #1
535 0030 F6E7 b .L22
536 .LVL57:
537 .L32:
76:../libOLED/src/displayFont.cpp **** while (pos && pos < siz)
77:../libOLED/src/displayFont.cpp **** {
78:../libOLED/src/displayFont.cpp **** if (pos == dp_loc)
79:../libOLED/src/displayFont.cpp **** {
80:../libOLED/src/displayFont.cpp **** buff[--pos] = '.';
538 .loc 1 80 4 is_stmt 1 view .LVU137
539 .loc 1 80 16 is_stmt 0 view .LVU138
540 0032 013D subs r5, r5, #1
541 .LVL58:
542 .loc 1 80 16 view .LVU139
543 0034 EDB2 uxtb r5, r5
544 .LVL59:
545 .loc 1 80 16 view .LVU140
546 0036 2E24 movs r4, #46
547 0038 4C55 strb r4, [r1, r5]
548 .LVL60:
549 .L23:
76:../libOLED/src/displayFont.cpp **** while (pos && pos < siz)
550 .loc 1 76 3 is_stmt 1 view .LVU141
76:../libOLED/src/displayFont.cpp **** while (pos && pos < siz)
551 .loc 1 76 14 is_stmt 0 view .LVU142
552 003a CDB1 cbz r5, .L24
76:../libOLED/src/displayFont.cpp **** while (pos && pos < siz)
553 .loc 1 76 14 discriminator 1 view .LVU143
554 003c 9542 cmp r5, r2
555 003e 17D2 bcs .L24
78:../libOLED/src/displayFont.cpp **** {
556 .loc 1 78 7 is_stmt 1 view .LVU144
557 0040 6545 cmp r5, ip
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 15
558 0042 F6D0 beq .L32
81:../libOLED/src/displayFont.cpp **** }
82:../libOLED/src/displayFont.cpp **** else
83:../libOLED/src/displayFont.cpp **** {
84:../libOLED/src/displayFont.cpp **** buff[--pos] = val % 10 + '0';
559 .loc 1 84 4 view .LVU145
560 .loc 1 84 22 is_stmt 0 view .LVU146
561 0044 0D4F ldr r7, .L33
562 0046 87FB0647 smull r4, r7, r7, r6
563 004a F417 asrs r4, r6, #31
564 004c C4EBA704 rsb r4, r4, r7, asr #2
565 0050 2746 mov r7, r4
566 0052 04EB8404 add r4, r4, r4, lsl #2
567 0056 4FEA440E lsl lr, r4, #1
568 005a A6EB0E04 sub r4, r6, lr
569 .loc 1 84 16 view .LVU147
570 005e 013D subs r5, r5, #1
571 .LVL61:
572 .loc 1 84 16 view .LVU148
573 0060 EDB2 uxtb r5, r5
574 .LVL62:
575 .loc 1 84 27 view .LVU149
576 0062 3034 adds r4, r4, #48
577 .loc 1 84 16 view .LVU150
578 0064 4C55 strb r4, [r1, r5]
85:../libOLED/src/displayFont.cpp **** val /= 10;
579 .loc 1 85 4 is_stmt 1 view .LVU151
580 .loc 1 85 8 is_stmt 0 view .LVU152
581 0066 3E46 mov r6, r7
582 .LVL63:
86:../libOLED/src/displayFont.cpp **** if (val == 0 && pos < dp_loc)
583 .loc 1 86 4 is_stmt 1 view .LVU153
584 0068 002F cmp r7, #0
585 006a E6D1 bne .L23
586 .loc 1 86 17 is_stmt 0 discriminator 1 view .LVU154
587 006c AC45 cmp ip, r5
588 006e E4D9 bls .L23
589 .L24:
87:../libOLED/src/displayFont.cpp **** break;
88:../libOLED/src/displayFont.cpp **** }
89:../libOLED/src/displayFont.cpp **** }
90:../libOLED/src/displayFont.cpp **** if (sign)
590 .loc 1 90 3 is_stmt 1 view .LVU155
591 0070 1BB1 cbz r3, .L27
91:../libOLED/src/displayFont.cpp **** {
92:../libOLED/src/displayFont.cpp **** buff[--pos] = '-';
592 .loc 1 92 7 view .LVU156
593 .loc 1 92 19 is_stmt 0 view .LVU157
594 0072 013D subs r5, r5, #1
595 .LVL64:
596 .loc 1 92 19 view .LVU158
597 0074 EDB2 uxtb r5, r5
598 .LVL65:
599 .loc 1 92 19 view .LVU159
600 0076 2D23 movs r3, #45
601 .LVL66:
602 .loc 1 92 19 view .LVU160
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 16
603 0078 4B55 strb r3, [r1, r5]
604 .L27:
93:../libOLED/src/displayFont.cpp **** }
94:../libOLED/src/displayFont.cpp **** return digits;
605 .loc 1 94 3 is_stmt 1 view .LVU161
95:../libOLED/src/displayFont.cpp **** }
606 .loc 1 95 1 is_stmt 0 view .LVU162
607 007a F0BD pop {r4, r5, r6, r7, pc}
608 .LVL67:
609 .L34:
610 .loc 1 95 1 view .LVU163
611 .align 2
612 .L33:
613 007c 67666666 .word 1717986919
614 .cfi_endproc
615 .LFE20:
617 .section .text._ZN9display_t10fontDigitsER6font_thhi8colour_t,"ax",%progbits
618 .align 1
619 .global _ZN9display_t10fontDigitsER6font_thhi8colour_t
620 .syntax unified
621 .thumb
622 .thumb_func
623 .fpu softvfp
625 _ZN9display_t10fontDigitsER6font_thhi8colour_t:
626 .LVL68:
627 .LFB21:
96:../libOLED/src/displayFont.cpp ****
97:../libOLED/src/displayFont.cpp **** void
98:../libOLED/src/displayFont.cpp **** display_t::fontDigits (font_t &font, uint8_t digits, uint8_t dp_pos, int val, colour_t colour)
99:../libOLED/src/displayFont.cpp **** {
628 .loc 1 99 1 is_stmt 1 view -0
629 .cfi_startproc
630 @ args = 8, pretend = 0, frame = 16
631 @ frame_needed = 0, uses_anonymous_args = 0
632 .loc 1 99 1 is_stmt 0 view .LVU165
633 0000 F0B5 push {r4, r5, r6, r7, lr}
634 .LCFI7:
635 .cfi_def_cfa_offset 20
636 .cfi_offset 4, -20
637 .cfi_offset 5, -16
638 .cfi_offset 6, -12
639 .cfi_offset 7, -8
640 .cfi_offset 14, -4
641 0002 87B0 sub sp, sp, #28
642 .LCFI8:
643 .cfi_def_cfa_offset 48
644 0004 0546 mov r5, r0
645 0006 0E46 mov r6, r1
646 0008 1746 mov r7, r2
100:../libOLED/src/displayFont.cpp **** char buff[10] = " ";
647 .loc 1 100 3 is_stmt 1 view .LVU166
648 .loc 1 100 8 is_stmt 0 view .LVU167
649 000a 0E4A ldr r2, .L37
650 .LVL69:
651 .loc 1 100 8 view .LVU168
652 000c 03AC add r4, sp, #12
653 000e 07CA ldm r2, {r0, r1, r2}
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 17
654 .LVL70:
655 .loc 1 100 8 view .LVU169
656 0010 03C4 stmia r4!, {r0, r1}
657 0012 2270 strb r2, [r4]
658 0014 0022 movs r2, #0
659 0016 8DF81520 strb r2, [sp, #21]
101:../libOLED/src/displayFont.cpp **** uint8_t wid = formatNum (buff, sizeof(buff), digits, dp_pos, val);
660 .loc 1 101 3 is_stmt 1 view .LVU170
661 .loc 1 101 27 is_stmt 0 view .LVU171
662 001a 0C9A ldr r2, [sp, #48]
663 001c 0192 str r2, [sp, #4]
664 001e 0093 str r3, [sp]
665 0020 3B46 mov r3, r7
666 .LVL71:
667 .loc 1 101 27 view .LVU172
668 0022 0A22 movs r2, #10
669 0024 03A9 add r1, sp, #12
670 0026 2846 mov r0, r5
671 0028 FFF7FEFF bl _ZN9display_t9formatNumEPchhhi
672 .LVL72:
102:../libOLED/src/displayFont.cpp **** printString (font, buff, wid, colour );
673 .loc 1 102 3 is_stmt 1 view .LVU173
674 .loc 1 102 15 is_stmt 0 view .LVU174
675 002c 9DF83430 ldrb r3, [sp, #52] @ zero_extendqisi2
676 0030 0093 str r3, [sp]
677 0032 83B2 uxth r3, r0
678 0034 03AA add r2, sp, #12
679 0036 3146 mov r1, r6
680 0038 2846 mov r0, r5
681 .LVL73:
682 .loc 1 102 15 view .LVU175
683 003a FFF7FEFF bl _ZN9display_t11printStringER6font_tPKct8colour_t
684 .LVL74:
103:../libOLED/src/displayFont.cpp **** }
685 .loc 1 103 1 view .LVU176
686 003e 07B0 add sp, sp, #28
687 .LCFI9:
688 .cfi_def_cfa_offset 20
689 @ sp needed
690 0040 F0BD pop {r4, r5, r6, r7, pc}
691 .LVL75:
692 .L38:
693 .loc 1 103 1 view .LVU177
694 0042 00BF .align 2
695 .L37:
696 0044 00000000 .word .LANCHOR0
697 .cfi_endproc
698 .LFE21:
700 .section .text._ZN9display_t13fontSigDigitsER6font_thhbhi8colour_t,"ax",%progbits
701 .align 1
702 .global _ZN9display_t13fontSigDigitsER6font_thhbhi8colour_t
703 .syntax unified
704 .thumb
705 .thumb_func
706 .fpu softvfp
708 _ZN9display_t13fontSigDigitsER6font_thhbhi8colour_t:
709 .LVL76:
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 18
710 .LFB22:
104:../libOLED/src/displayFont.cpp ****
105:../libOLED/src/displayFont.cpp **** void
106:../libOLED/src/displayFont.cpp **** display_t::fontSigDigits (font_t &font,uint8_t x, uint8_t y, bool right_justify, uint8_t dp_pos,
107:../libOLED/src/displayFont.cpp **** int val, colour_t colour)
108:../libOLED/src/displayFont.cpp **** {
711 .loc 1 108 1 is_stmt 1 view -0
712 .cfi_startproc
713 @ args = 16, pretend = 0, frame = 0
714 @ frame_needed = 0, uses_anonymous_args = 0
715 .loc 1 108 1 is_stmt 0 view .LVU179
716 0000 F0B5 push {r4, r5, r6, r7, lr}
717 .LCFI10:
718 .cfi_def_cfa_offset 20
719 .cfi_offset 4, -20
720 .cfi_offset 5, -16
721 .cfi_offset 6, -12
722 .cfi_offset 7, -8
723 .cfi_offset 14, -4
724 0002 83B0 sub sp, sp, #12
725 .LCFI11:
726 .cfi_def_cfa_offset 32
727 0004 9C46 mov ip, r3
728 0006 9DF820E0 ldrb lr, [sp, #32] @ zero_extendqisi2
729 000a 9DF82430 ldrb r3, [sp, #36] @ zero_extendqisi2
730 .LVL77:
731 .loc 1 108 1 view .LVU180
732 000e 0A9D ldr r5, [sp, #40]
109:../libOLED/src/displayFont.cpp **** char digits;
733 .loc 1 109 3 is_stmt 1 view .LVU181
110:../libOLED/src/displayFont.cpp **** char sign = 0;
734 .loc 1 110 3 view .LVU182
735 .LVL78:
111:../libOLED/src/displayFont.cpp **** int uval;
736 .loc 1 111 3 view .LVU183
112:../libOLED/src/displayFont.cpp **** if (val < 0)
737 .loc 1 112 3 view .LVU184
738 0010 002D cmp r5, #0
739 0012 26DB blt .L52
113:../libOLED/src/displayFont.cpp **** {
114:../libOLED/src/displayFont.cpp **** uval = -val;
115:../libOLED/src/displayFont.cpp **** sign = 1; // mark as negative
116:../libOLED/src/displayFont.cpp **** }
117:../libOLED/src/displayFont.cpp **** else
118:../libOLED/src/displayFont.cpp **** {
119:../libOLED/src/displayFont.cpp **** uval = val;
740 .loc 1 119 12 is_stmt 0 view .LVU185
741 0014 2E46 mov r6, r5
742 .LVL79:
743 .L40:
120:../libOLED/src/displayFont.cpp **** }
121:../libOLED/src/displayFont.cpp **** if (uval < 10) // always one digit for a sign or space, one for a digit
744 .loc 1 121 3 is_stmt 1 view .LVU186
122:../libOLED/src/displayFont.cpp **** {
123:../libOLED/src/displayFont.cpp **** digits = 1;
124:../libOLED/src/displayFont.cpp **** }
125:../libOLED/src/displayFont.cpp **** if (uval >= 10 && uval < 100)
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 19
745 .loc 1 125 3 view .LVU187
746 .loc 1 125 18 is_stmt 0 view .LVU188
747 0016 3746 mov r7, r6
748 0018 A6F10A04 sub r4, r6, #10
749 .loc 1 125 3 view .LVU189
750 001c 592C cmp r4, #89
751 001e 22D9 bls .L48
752 0020 0124 movs r4, #1
753 .L41:
754 .LVL80:
126:../libOLED/src/displayFont.cpp **** {
127:../libOLED/src/displayFont.cpp **** digits = 2;
128:../libOLED/src/displayFont.cpp **** }
129:../libOLED/src/displayFont.cpp **** if (uval >= 100 && uval < 1000)
755 .loc 1 129 3 is_stmt 1 view .LVU190
756 .loc 1 129 19 is_stmt 0 view .LVU191
757 0022 643F subs r7, r7, #100
758 .loc 1 129 3 view .LVU192
759 0024 B7F5617F cmp r7, #900
760 0028 00D2 bcs .L42
130:../libOLED/src/displayFont.cpp **** {
131:../libOLED/src/displayFont.cpp **** digits = 3;
761 .loc 1 131 14 view .LVU193
762 002a 0324 movs r4, #3
763 .LVL81:
764 .L42:
132:../libOLED/src/displayFont.cpp **** }
133:../libOLED/src/displayFont.cpp **** if (uval >= 1000)
765 .loc 1 133 3 is_stmt 1 view .LVU194
766 002c B6F57A7F cmp r6, #1000
767 0030 00DB blt .L43
134:../libOLED/src/displayFont.cpp **** {
135:../libOLED/src/displayFont.cpp **** digits = 4;
768 .loc 1 135 14 is_stmt 0 view .LVU195
769 0032 0424 movs r4, #4
770 .LVL82:
771 .L43:
136:../libOLED/src/displayFont.cpp **** }
137:../libOLED/src/displayFont.cpp **** // backup for the - sign if right justified
138:../libOLED/src/displayFont.cpp **** if (right_justify)
772 .loc 1 138 3 is_stmt 1 view .LVU196
773 0034 BEF1000F cmp lr, #0
774 0038 07D0 beq .L44
139:../libOLED/src/displayFont.cpp **** {
140:../libOLED/src/displayFont.cpp **** if (dp_pos < 10)
775 .loc 1 140 7 view .LVU197
776 003a 092B cmp r3, #9
777 003c 15D8 bhi .L45
141:../libOLED/src/displayFont.cpp **** {
142:../libOLED/src/displayFont.cpp **** digits += 2;
778 .loc 1 142 4 view .LVU198
779 .loc 1 142 11 is_stmt 0 view .LVU199
780 003e 0234 adds r4, r4, #2
781 .LVL83:
782 .loc 1 142 11 view .LVU200
783 0040 E4B2 uxtb r4, r4
784 .LVL84:
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 20
785 .L46:
143:../libOLED/src/displayFont.cpp **** }
144:../libOLED/src/displayFont.cpp **** else
145:../libOLED/src/displayFont.cpp **** {
146:../libOLED/src/displayFont.cpp **** digits += 1;
147:../libOLED/src/displayFont.cpp **** }
148:../libOLED/src/displayFont.cpp **** x -= digits * font.spacing();
786 .loc 1 148 7 is_stmt 1 view .LVU201
787 .LBB58:
788 .LBI58:
45:../libOLED/inc/libOLED/fontclass.H **** {
789 .loc 3 45 3 view .LVU202
790 .LBB59:
791 .loc 3 47 5 view .LVU203
792 .loc 3 47 12 is_stmt 0 view .LVU204
793 0042 8E79 ldrb r6, [r1, #6] @ zero_extendqisi2
794 .LVL85:
795 .loc 3 47 12 view .LVU205
796 .LBE59:
797 .LBE58:
798 .loc 1 148 9 view .LVU206
799 0044 06FB1422 mls r2, r6, r4, r2
800 .LVL86:
801 .loc 1 148 9 view .LVU207
802 0048 D2B2 uxtb r2, r2
803 .LVL87:
804 .L44:
149:../libOLED/src/displayFont.cpp **** }
150:../libOLED/src/displayFont.cpp ****
151:../libOLED/src/displayFont.cpp **** gotoxy (x, y);
805 .loc 1 151 3 is_stmt 1 view .LVU208
806 .LBB60:
807 .LBI60:
74:../libOLED/inc/libOLED/displayclass.H ****
75:../libOLED/inc/libOLED/displayclass.H ****
76:../libOLED/inc/libOLED/displayclass.H **** void
77:../libOLED/inc/libOLED/displayclass.H **** drawPixel (int16_t x, int16_t y, bool pixel);
78:../libOLED/inc/libOLED/displayclass.H ****
79:../libOLED/inc/libOLED/displayclass.H **** void
80:../libOLED/inc/libOLED/displayclass.H **** drawLine (int16_t x1, int16_t y1, int16_t x2, int16_t y2, colour_t color);
81:../libOLED/inc/libOLED/displayclass.H ****
82:../libOLED/inc/libOLED/displayclass.H **** void drawRectangle (int16_t x1, int16_t y1, int16_t x2, int16_t y2, colour_t color);
83:../libOLED/inc/libOLED/displayclass.H ****
84:../libOLED/inc/libOLED/displayclass.H ****
85:../libOLED/inc/libOLED/displayclass.H **** void
86:../libOLED/inc/libOLED/displayclass.H **** gotoxy (int x, int y)
808 .loc 2 86 3 view .LVU209
809 .LBB61:
87:../libOLED/inc/libOLED/displayclass.H **** {
88:../libOLED/inc/libOLED/displayclass.H **** m_cursor_x = x;
810 .loc 2 88 5 view .LVU210
811 .loc 2 88 16 is_stmt 0 view .LVU211
812 004a 0261 str r2, [r0, #16]
89:../libOLED/inc/libOLED/displayclass.H **** m_cursor_y = y;
813 .loc 2 89 5 is_stmt 1 view .LVU212
814 .loc 2 89 16 is_stmt 0 view .LVU213
815 004c C0F814C0 str ip, [r0, #20]
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 21
816 .LVL88:
817 .loc 2 89 16 view .LVU214
818 .LBE61:
819 .LBE60:
152:../libOLED/src/displayFont.cpp **** fontDigits (font, digits, dp_pos, val,colour);
820 .loc 1 152 3 is_stmt 1 view .LVU215
821 .loc 1 152 14 is_stmt 0 view .LVU216
822 0050 9DF82C20 ldrb r2, [sp, #44] @ zero_extendqisi2
823 .LVL89:
824 .loc 1 152 14 view .LVU217
825 0054 0192 str r2, [sp, #4]
826 0056 0095 str r5, [sp]
827 0058 2246 mov r2, r4
828 005a FFF7FEFF bl _ZN9display_t10fontDigitsER6font_thhi8colour_t
829 .LVL90:
153:../libOLED/src/displayFont.cpp **** }
830 .loc 1 153 1 view .LVU218
831 005e 03B0 add sp, sp, #12
832 .LCFI12:
833 .cfi_remember_state
834 .cfi_def_cfa_offset 20
835 @ sp needed
836 0060 F0BD pop {r4, r5, r6, r7, pc}
837 .LVL91:
838 .L52:
839 .LCFI13:
840 .cfi_restore_state
114:../libOLED/src/displayFont.cpp **** sign = 1; // mark as negative
841 .loc 1 114 7 is_stmt 1 view .LVU219
114:../libOLED/src/displayFont.cpp **** sign = 1; // mark as negative
842 .loc 1 114 12 is_stmt 0 view .LVU220
843 0062 6E42 rsbs r6, r5, #0
844 .LVL92:
115:../libOLED/src/displayFont.cpp **** }
845 .loc 1 115 7 is_stmt 1 view .LVU221
115:../libOLED/src/displayFont.cpp **** }
846 .loc 1 115 7 is_stmt 0 view .LVU222
847 0064 D7E7 b .L40
848 .LVL93:
849 .L48:
127:../libOLED/src/displayFont.cpp **** }
850 .loc 1 127 14 view .LVU223
851 0066 0224 movs r4, #2
852 0068 DBE7 b .L41
853 .LVL94:
854 .L45:
146:../libOLED/src/displayFont.cpp **** }
855 .loc 1 146 4 is_stmt 1 view .LVU224
146:../libOLED/src/displayFont.cpp **** }
856 .loc 1 146 11 is_stmt 0 view .LVU225
857 006a 0134 adds r4, r4, #1
858 .LVL95:
146:../libOLED/src/displayFont.cpp **** }
859 .loc 1 146 11 view .LVU226
860 006c E4B2 uxtb r4, r4
861 .LVL96:
146:../libOLED/src/displayFont.cpp **** }
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 22
862 .loc 1 146 11 view .LVU227
863 006e E8E7 b .L46
864 .cfi_endproc
865 .LFE22:
867 .section .rodata
868 .align 2
869 .set .LANCHOR0,. + 0
870 .LC0:
871 0000 20202020 .ascii " \000"
871 20202020
871 00
872 0009 00 .space 1
873 .text
874 .Letext0:
875 .file 4 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
876 .file 5 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
877 .file 6 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
878 .file 7 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
879 .file 8 "c:\\users\\mike\\appdata\\roaming\\xpacks\\@gnu-mcu-eclipse\\arm-none-eabi-gcc\\8.2.1-1.7
880 .file 9 "<built-in>"
ARM GAS C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s page 23
DEFINED SYMBOLS
*ABS*:0000000000000000 displayFont.cpp
C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s:16 .text._ZN9display_t11printStringER6font_tPKct8colour_t:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s:24 .text._ZN9display_t11printStringER6font_tPKct8colour_t:0000000000000000 _ZN9display_t11printStringER6font_tPKct8colour_t
C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s:237 .text._ZN9display_t17printScaledStringER6font_tPKctt8colour_t:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s:244 .text._ZN9display_t17printScaledStringER6font_tPKctt8colour_t:0000000000000000 _ZN9display_t17printScaledStringER6font_tPKctt8colour_t
C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s:462 .text._ZN9display_t9formatNumEPchhhi:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s:469 .text._ZN9display_t9formatNumEPchhhi:0000000000000000 _ZN9display_t9formatNumEPchhhi
C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s:613 .text._ZN9display_t9formatNumEPchhhi:000000000000007c $d
C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s:618 .text._ZN9display_t10fontDigitsER6font_thhi8colour_t:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s:625 .text._ZN9display_t10fontDigitsER6font_thhi8colour_t:0000000000000000 _ZN9display_t10fontDigitsER6font_thhi8colour_t
C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s:696 .text._ZN9display_t10fontDigitsER6font_thhi8colour_t:0000000000000044 $d
C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s:701 .text._ZN9display_t13fontSigDigitsER6font_thhbhi8colour_t:0000000000000000 $t
C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s:708 .text._ZN9display_t13fontSigDigitsER6font_thhbhi8colour_t:0000000000000000 _ZN9display_t13fontSigDigitsER6font_thhbhi8colour_t
C:\Users\mike\AppData\Local\Temp\cc5FnZPj.s:868 .rodata:0000000000000000 $d
UNDEFINED SYMBOLS
_ZN9display_t9drawPixelEssb
_ZN9display_t5widthEv