1 | (gdb) target remote 192.168.1.85:4000
|
---|
2 | Remote debugging using 192.168.1.85:4000
|
---|
3 | warning: multi-threaded target stopped without sending a thread-id, using first non-exited thread
|
---|
4 | [Switching to Thread 335]
|
---|
5 | svcWaitSynchronization () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/svc.s:263
|
---|
6 | 263 svc 0x24
|
---|
7 | (gdb) c
|
---|
8 | Continuing.
|
---|
9 | User picked target 'grim-win' (engine ID 'grim', game ID 'grim')...
|
---|
10 | Looking for a plugin supporting this target... Grim
|
---|
11 | 3ds initsize w:640 h:480
|
---|
12 | pixelformat: 4 8 8 8 8
|
---|
13 | 3ds initsize w:640 h:480
|
---|
14 | pixelformat: 4 8 8 8 8
|
---|
15 | INFO: TinyGL front buffer pixel format: RGBA8888@4
|
---|
16 | WARNING: Lua_V1::SetGamma, implement opcode, level: 0.000000!
|
---|
17 | WARNING: !!!! Trying to call MakeSectorActive without a scene!
|
---|
18 | WARNING: !!!! Trying to call MakeSectorActive without a scene!
|
---|
19 | WARNING: !!!! Trying to call MakeSectorActive without a scene!
|
---|
20 | WARNING: !!!! Trying to call MakeSectorActive without a scene!
|
---|
21 | WARNING: !!!! Trying to call MakeSectorActive without a scene!
|
---|
22 |
|
---|
23 | Thread 8 received signal SIGSEGV, Segmentation fault.
|
---|
24 | [Switching to Thread 347]
|
---|
25 | 0x00119f28 in hidScanInput () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/services/hid.c:185
|
---|
26 | 185 Id = hidSharedMem[4];//PAD / circle-pad
|
---|
27 |
|
---|
28 | (gdb) i r
|
---|
29 | r0 0x0 0
|
---|
30 | r1 0xfff1a80c -940020
|
---|
31 | r2 0x0 0
|
---|
32 | r3 0x10000000 268435456
|
---|
33 | r4 0xba2d64 12201316
|
---|
34 | r5 0x0 0
|
---|
35 | r6 0xba2d28 12201256
|
---|
36 | r7 0xba2d68 12201320
|
---|
37 | r8 0xba2d5c 12201308
|
---|
38 | r9 0x0 0
|
---|
39 | r10 0x1 1
|
---|
40 | r11 0x0 0
|
---|
41 | r12 0x0 0
|
---|
42 | sp 0x81492b0 0x81492b0
|
---|
43 | lr 0x119f1c 1154844
|
---|
44 | pc 0x119f28 0x119f28 <hidScanInput+40>
|
---|
45 | cpsr 0x60000010 1610612752
|
---|
46 | fpscr 0x3c00000 62914560
|
---|
47 | fpexc 0x40000000 1073741824
|
---|
48 |
|
---|
49 | (gdb) thread apply all bt full
|
---|
50 |
|
---|
51 | Thread 8 (Thread 347 (TLS: 0x1ffb3e00, running, dynamic prio.: 47, static prio.: 47, ideal core: 0, running on core 0)):
|
---|
52 | #0 0x00119f28 in hidScanInput () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/services/hid.c:185
|
---|
53 | Id = 0
|
---|
54 | #1 0x0016914c in N3DS::eventThreadFunc (arg=0x802fb3c) at backends/platform/3ds/osystem-events.cpp:108
|
---|
55 | held = <optimized out>
|
---|
56 | keysPressed = <optimized out>
|
---|
57 | keysReleased = <optimized out>
|
---|
58 | circle = {dx = -7, dy = -7}
|
---|
59 | osys = 0x802f098
|
---|
60 | eventQueue = 0x802fb3c
|
---|
61 | touchStartTime = 227
|
---|
62 | lastTouch = {px = <optimized out>, py = <optimized out>}
|
---|
63 | lastCircle = {dx = <optimized out>, dy = <optimized out>}
|
---|
64 | borderSnapZone = 6
|
---|
65 | event = {type = Common::EVENT_LBUTTONUP, kbdRepeat = false, kbd = {keycode = Common::KEYCODE_INVALID, ascii = 0, flags = 0 '\000'}, mouse = {x = 282, y = 227}, customType = 0, path = {<Common::BaseString<char>> = {static npos = 4294967295, static _builtinCapacity = 24, _size = 0, _str = 0x8149304 "", {_storage = '\000' <repeats 23 times>, _extern = {_refCount = 0x0, _capacity = 0}}}, <No data fields>}, relMouse = {x = 0, y = 0}, joystick = {axis = 1 '\001', position = 1433, button = 0 '\000'}}
|
---|
66 | #2 0x0011b6d4 in _thread_begin (arg=<optimized out>) at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/thread.c:37
|
---|
67 | t = <optimized out>
|
---|
68 | tv = <optimized out>
|
---|
69 | #3 0x00000000 in ?? ()
|
---|
70 | No symbol table info available.
|
---|
71 | Backtrace stopped: previous frame identical to this frame (corrupt stack?)
|
---|
72 |
|
---|
73 | Thread 7 (Thread 346 (TLS: 0x1ffb3c00, running, dynamic prio.: 47, static prio.: 47, ideal core: 0, running on core 0)):
|
---|
74 | #0 svcSleepThread () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/svc.s:85
|
---|
75 | No locals.
|
---|
76 | #1 0x00168bd4 in N3DS::timerThreadFunc (arg=0x802f098) at backends/platform/3ds/osystem-events.cpp:242
|
---|
77 | osys = 0x802f098
|
---|
78 | tm = 0x804f6f0
|
---|
79 | #2 0x0011b6d4 in _thread_begin (arg=<optimized out>) at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/thread.c:37
|
---|
80 | t = <optimized out>
|
---|
81 | tv = <optimized out>
|
---|
82 | #3 0x00000000 in ?? ()
|
---|
83 | No symbol table info available.
|
---|
84 | Backtrace stopped: previous frame identical to this frame (corrupt stack?)
|
---|
85 |
|
---|
86 | Thread 6 (Thread 345 (TLS: 0x1ffb3a00, running, dynamic prio.: 47, static prio.: 47, ideal core: 0, running on core 0)):
|
---|
87 | #0 svcSleepThread () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/svc.s:85
|
---|
88 | No locals.
|
---|
89 | #1 0x001687c0 in N3DS::audioThreadFunc (arg=0x803b310) at backends/platform/3ds/osystem-audio.cpp:56
|
---|
90 | buf = <optimized out>
|
---|
91 | mixer = 0x803b310
|
---|
92 | osys = 0x802f098
|
---|
93 | channel = 0
|
---|
94 | bufferIndex = 1
|
---|
95 | bufferCount = 2
|
---|
96 | sampleRate = 22050
|
---|
97 | bufferSamples = 1024
|
---|
98 | bufferSize = 4096
|
---|
99 | buffers = {{{data_pcm8 = 0x301c9f00 "", data_pcm16 = 0x301c9f00, data_adpcm = 0x301c9f00 "", data_vaddr = 0x301c9f00}, nsamples = 0, adpcm_data = 0x0, offset = 0, looping = false, status = 0 '\000', sequence_id = 0, next = 0x0}, {{data_pcm8 = 0x301caf00 "", data_pcm16 = 0x301caf00, data_adpcm = 0x301caf00 "", data_vaddr = 0x301caf00}, nsamples = 0, adpcm_data = 0x0, offset = 0, looping = false, status = 0 '\000', sequence_id = 0, next = 0x0}}
|
---|
100 | #2 0x0011b6d4 in _thread_begin (arg=<optimized out>) at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/thread.c:37
|
---|
101 | t = <optimized out>
|
---|
102 | tv = <optimized out>
|
---|
103 | #3 0x00000000 in ?? ()
|
---|
104 | No symbol table info available.
|
---|
105 | Backtrace stopped: previous frame identical to this frame (corrupt stack?)
|
---|
106 |
|
---|
107 | Thread 5 (Thread 344 (TLS: 0x1ffb3800, running, dynamic prio.: 24, static prio.: 24, ideal core: 0, running on core 0)):
|
---|
108 | #0 svcWaitSynchronization () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/svc.s:263
|
---|
109 | No locals.
|
---|
110 | #1 0x004fc33c in ndspWaitForIrq (timeout_ns=18446744073709551615) at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/ndsp/ndsp.c:44
|
---|
111 | rc = <optimized out>
|
---|
112 | waitOk = false
|
---|
113 | waitOk = <optimized out>
|
---|
114 | rc = <optimized out>
|
---|
115 | #2 ndspSync () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/ndsp/ndsp.c:407
|
---|
116 | _receiveState = <optimized out>
|
---|
117 | counter = <optimized out>
|
---|
118 | next = <optimized out>
|
---|
119 | #3 ndspThreadMain (arg=<optimized out>) at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/ndsp/ndsp.c:432
|
---|
120 | No locals.
|
---|
121 | #4 0x0011b6d4 in _thread_begin (arg=<optimized out>) at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/thread.c:37
|
---|
122 | t = <optimized out>
|
---|
123 | tv = <optimized out>
|
---|
124 | #5 0x00000000 in ?? ()
|
---|
125 | No symbol table info available.
|
---|
126 | Backtrace stopped: previous frame identical to this frame (corrupt stack?)
|
---|
127 |
|
---|
128 | Thread 4 (Thread 342 (TLS: 0x1ffb3600, running, dynamic prio.: 48, static prio.: 48, ideal core: 0, running on core 0)):
|
---|
129 | #0 svcSendSyncRequest () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/svc.s:338
|
---|
130 | No locals.
|
---|
131 | #1 0x0011a618 in IRRST_Shutdown () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/services/irrst.c:171
|
---|
132 | cmdbuf = <optimized out>
|
---|
133 | ret = 0
|
---|
134 | #2 irrstExit () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/services/irrst.c:77
|
---|
135 | No locals.
|
---|
136 | #3 0x00119ce8 in hidExit () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/services/hid.c:99
|
---|
137 | i = <optimized out>
|
---|
138 | #4 0x0010f1d4 in __appExit () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/system/appExit.c:19
|
---|
139 | No locals.
|
---|
140 | #5 0x0010f1a4 in __ctru_exit () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/system/stack_adjust.s:30
|
---|
141 | No locals.
|
---|
142 | Backtrace stopped: previous frame identical to this frame (corrupt stack?)
|
---|
143 |
|
---|
144 | Thread 3 (Thread 340 (TLS: 0x1ffb3400, running, dynamic prio.: 26, static prio.: 26, ideal core: 0, running on core 0)):
|
---|
145 | #0 svcWaitSynchronization () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/svc.s:263
|
---|
146 | No locals.
|
---|
147 | #1 0x001192e4 in gspEventThreadMain (arg=<optimized out>) at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/services/gspgpu.c:346
|
---|
148 | No locals.
|
---|
149 | #2 0x0011b6d4 in _thread_begin (arg=<optimized out>) at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/thread.c:37
|
---|
150 | t = <optimized out>
|
---|
151 | tv = <optimized out>
|
---|
152 | #3 0x00000000 in ?? ()
|
---|
153 | No symbol table info available.
|
---|
154 | Backtrace stopped: previous frame identical to this frame (corrupt stack?)
|
---|
155 |
|
---|
156 | Thread 2 (Thread 336 (TLS: 0x1ffb3200, idle, dynamic prio.: 49, static prio.: 49, ideal core: 0, running on core 0)):
|
---|
157 | #0 svcWaitSynchronizationN () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/svc.s:273
|
---|
158 | No locals.
|
---|
159 | #1 0x00113ba0 in aptEventHandler (arg=<optimized out>) at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/services/apt.c:423
|
---|
160 | id = 0
|
---|
161 | signal = <optimized out>
|
---|
162 | res = <optimized out>
|
---|
163 | #2 0x00000000 in ?? ()
|
---|
164 | No symbol table info available.
|
---|
165 | Backtrace stopped: previous frame identical to this frame (corrupt stack?)
|
---|
166 |
|
---|
167 | Thread 1 (Thread 335 (TLS: 0x1ffb3000, idle, dynamic prio.: 48, static prio.: 48, ideal core: 0, running on core 0)):
|
---|
168 | #0 svcWaitSynchronization () at /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/svc.s:263
|
---|
169 | No locals.
|
---|
170 | #1 0x001625d8 in main (argc=1, argv=0x8000000) at backends/platform/3ds/main.cpp:86
|
---|
171 | systemModel = 2 '\002'
|
---|
172 | soc_sharedmem_size = 65536
|
---|
173 | soc_sharedmem = <optimized out>
|
---|
174 | commandLine = {argumentCount = 1, argumentsValue = 0x8000000}
|
---|
175 | mainThreadPriority = 48
|
---|
176 | mainThread = 0x801e008
|
---|
177 | res = <optimized out>
|
---|
178 |
|
---|
179 | (gdb) disassemble hidScanInput
|
---|
180 | Dump of assembler code for function hidScanInput:
|
---|
181 | 0x00119f00 <+0>: push {r4, r5, r6, r7, r8, r9, r10, lr}
|
---|
182 | 0x00119f04 <+4>: ldr r4, [pc, #612] ; 0x11a170 <hidScanInput+624>
|
---|
183 | 0x00119f08 <+8>: ldr r7, [pc, #612] ; 0x11a174 <hidScanInput+628>
|
---|
184 | 0x00119f0c <+12>: ldr r3, [r4]
|
---|
185 | 0x00119f10 <+16>: ldr r8, [pc, #608] ; 0x11a178 <hidScanInput+632>
|
---|
186 | 0x00119f14 <+20>: str r3, [r7]
|
---|
187 | 0x00119f18 <+24>: bl 0x11a6c4 <irrstScanInput>
|
---|
188 | 0x00119f1c <+28>: mov r2, #0
|
---|
189 | 0x00119f20 <+32>: ldr r3, [r8]
|
---|
190 | 0x00119f24 <+36>: ldr r6, [pc, #592] ; 0x11a17c <hidScanInput+636>
|
---|
191 | => 0x00119f28 <+40>: ldr r1, [r3, #16]
|
---|
192 | 0x00119f2c <+44>: ldr r5, [pc, #588] ; 0x11a180 <hidScanInput+640>
|
---|
193 | 0x00119f30 <+48>: ldr lr, [pc, #588] ; 0x11a184 <hidScanInput+644>
|
---|
194 | 0x00119f34 <+52>: ldr r12, [pc, #588] ; 0x11a188 <hidScanInput+648>
|
---|
195 | 0x00119f38 <+56>: cmp r1, #7
|
---|
196 | 0x00119f3c <+60>: str r2, [r4]
|
---|
197 | 0x00119f40 <+64>: str r2, [lr]
|
---|
198 | 0x00119f44 <+68>: str r2, [r12]
|
---|
199 | 0x00119f48 <+72>: str r2, [r6]
|
---|
200 | 0x00119f4c <+76>: strh r2, [r6, #4]
|
---|
201 | 0x00119f50 <+80>: str r2, [r5]
|
---|
202 | 0x00119f54 <+84>: strh r2, [r5, #4]
|
---|
203 | 0x00119f58 <+88>: bhi 0x119f98 <hidScanInput+152>
|
---|
204 | 0x00119f5c <+92>: cmp r1, r2
|
---|
205 | 0x00119f60 <+96>: bne 0x11a160 <hidScanInput+608>
|
---|
206 | 0x00119f64 <+100>: ldrd r0, [r3, #8]
|
---|
207 | 0x00119f68 <+104>: ldr r2, [r3, #4]
|
---|
208 | 0x00119f6c <+108>: ldr r9, [r3]
|
---|
209 | 0x00119f70 <+112>: cmp r2, r1
|
---|
210 | 0x00119f74 <+116>: cmpeq r9, r0
|
---|
211 | 0x00119f78 <+120>: orr r2, r2, r1
|
---|
212 | 0x00119f7c <+124>: moveq r1, #1
|
---|
213 | 0x00119f80 <+128>: movne r1, #0
|
---|
214 | 0x00119f84 <+132>: orrs r1, r1, r2, lsr #31
|
---|
215 | 0x00119f88 <+136>: moveq r1, #52 ; 0x34
|
---|
216 | 0x00119f8c <+140>: moveq r2, #40 ; 0x28
|
---|
217 | 0x00119f90 <+144>: bne 0x119fb0 <hidScanInput+176>
|
---|
218 | 0x00119f94 <+148>: b 0x119fa0 <hidScanInput+160>
|
---|
219 | 0x00119f98 <+152>: mov r1, #164 ; 0xa4
|
---|
220 | 0x00119f9c <+156>: mov r2, #152 ; 0x98
|
---|
221 | 0x00119fa0 <+160>: ldr r2, [r3, r2]
|
---|
222 | 0x00119fa4 <+164>: ldr r0, [r3, r1]
|
---|
223 | 0x00119fa8 <+168>: str r2, [r4]
|
---|
224 | 0x00119fac <+172>: str r0, [lr]
|
---|
225 | 0x00119fb0 <+176>: ldr r1, [r3, #184] ; 0xb8
|
---|
226 | 0x00119fb4 <+180>: cmp r1, #7
|
---|
227 | 0x00119fb8 <+184>: movcc r2, r1
|
---|
228 | 0x00119fbc <+188>: movcs r2, #7
|
---|
229 | 0x00119fc0 <+192>: cmp r1, #0
|
---|
230 | 0x00119fc4 <+196>: bne 0x11a134 <hidScanInput+564>
|
---|
231 | 0x00119fc8 <+200>: ldr r0, [r3, #180] ; 0xb4
|
---|
232 | 0x00119fcc <+204>: ldr r1, [r3, #172] ; 0xac
|
---|
233 | 0x00119fd0 <+208>: ldr lr, [r3, #176] ; 0xb0
|
---|
234 | 0x00119fd4 <+212>: ldr r9, [r3, #168] ; 0xa8
|
---|
235 | 0x00119fd8 <+216>: cmp r1, r0
|
---|
236 | 0x00119fdc <+220>: cmpeq r9, lr
|
---|
237 | 0x00119fe0 <+224>: orr r1, r1, r0
|
---|
238 | 0x00119fe4 <+228>: moveq r0, #1
|
---|
239 | 0x00119fe8 <+232>: movne r0, #0
|
---|
240 | 0x00119fec <+236>: orrs r0, r0, r1, lsr #31
|
---|
241 | 0x00119ff0 <+240>: beq 0x11a134 <hidScanInput+564>
|
---|
242 | 0x00119ff4 <+244>: bl 0x11a778 <irrstKeysHeld>
|
---|
243 | 0x00119ff8 <+248>: ldr r1, [r4]
|
---|
244 | 0x00119ffc <+252>: ldr r3, [pc, #392] ; 0x11a18c <hidScanInput+652>
|
---|
245 | 0x0011a000 <+256>: ldr r2, [r7]
|
---|
246 | 0x0011a004 <+260>: orr r0, r0, r1
|
---|
247 | 0x0011a008 <+264>: ldr lr, [pc, #384] ; 0x11a190 <hidScanInput+656>
|
---|
248 | 0x0011a00c <+268>: ldr r3, [r3]
|
---|
249 | 0x0011a010 <+272>: ldr r12, [pc, #380] ; 0x11a194 <hidScanInput+660>
|
---|
250 | 0x0011a014 <+276>: bic r1, r0, r2
|
---|
251 | 0x0011a018 <+280>: str r1, [lr]
|
---|
252 | 0x0011a01c <+284>: cmp r3, #0
|
---|
253 | 0x0011a020 <+288>: bic lr, r2, r0
|
---|
254 | 0x0011a024 <+292>: str r0, [r4]
|
---|
255 | 0x0011a028 <+296>: str lr, [r12]
|
---|
256 | 0x0011a02c <+300>: beq 0x11a068 <hidScanInput+360>
|
---|
257 | 0x0011a030 <+304>: cmp r0, r2
|
---|
258 | 0x0011a034 <+308>: ldreq r2, [pc, #348] ; 0x11a198 <hidScanInput+664>
|
---|
259 | 0x0011a038 <+312>: ldrne r2, [pc, #348] ; 0x11a19c <hidScanInput+668>
|
---|
260 | 0x0011a03c <+316>: ldreq r3, [r2]
|
---|
261 | 0x0011a040 <+320>: strne r1, [r2]
|
---|
262 | 0x0011a044 <+324>: sub r3, r3, #1
|
---|
263 | 0x0011a048 <+328>: ldrne r2, [pc, #328] ; 0x11a198 <hidScanInput+664>
|
---|
264 | 0x0011a04c <+332>: cmp r3, #0
|
---|
265 | 0x0011a050 <+336>: str r3, [r2]
|
---|
266 | 0x0011a054 <+340>: ldreq r3, [pc, #324] ; 0x11a1a0 <hidScanInput+672>
|
---|
267 | 0x0011a058 <+344>: ldreq r3, [r3]
|
---|
268 | 0x0011a05c <+348>: streq r3, [r2]
|
---|
269 | 0x0011a060 <+352>: ldreq r3, [pc, #308] ; 0x11a19c <hidScanInput+668>
|
---|
270 | 0x0011a064 <+356>: streq r0, [r3]
|
---|
271 | 0x0011a068 <+360>: ldr r3, [r8]
|
---|
272 | 0x0011a06c <+364>: ldr r1, [r3, #280] ; 0x118
|
---|
273 | 0x0011a070 <+368>: cmp r1, #7
|
---|
274 | 0x0011a074 <+372>: movcc r2, r1
|
---|
275 | 0x0011a078 <+376>: movcs r2, #7
|
---|
276 | 0x0011a07c <+380>: cmp r1, #0
|
---|
277 | 0x0011a080 <+384>: bne 0x11a114 <hidScanInput+532>
|
---|
278 | 0x0011a084 <+388>: ldr r0, [r3, #272] ; 0x110
|
---|
279 | 0x0011a088 <+392>: ldr r1, [r3, #268] ; 0x10c
|
---|
280 | 0x0011a08c <+396>: ldr r12, [r3, #276] ; 0x114
|
---|
281 | 0x0011a090 <+400>: ldr lr, [r3, #264] ; 0x108
|
---|
282 | 0x0011a094 <+404>: cmp r1, r12
|
---|
283 | 0x0011a098 <+408>: cmpeq lr, r0
|
---|
284 | 0x0011a09c <+412>: moveq r0, #1
|
---|
285 | 0x0011a0a0 <+416>: movne r0, #0
|
---|
286 | 0x0011a0a4 <+420>: orr r1, r1, r12
|
---|
287 | 0x0011a0a8 <+424>: orrs r0, r0, r1, lsr #31
|
---|
288 | 0x0011a0ac <+428>: beq 0x11a114 <hidScanInput+532>
|
---|
289 | 0x0011a0b0 <+432>: ldr r1, [r3, #360] ; 0x168
|
---|
290 | 0x0011a0b4 <+436>: cmp r1, #31
|
---|
291 | 0x0011a0b8 <+440>: movcc r2, r1
|
---|
292 | 0x0011a0bc <+444>: movcs r2, #31
|
---|
293 | 0x0011a0c0 <+448>: cmp r1, #0
|
---|
294 | 0x0011a0c4 <+452>: bne 0x11a0f4 <hidScanInput+500>
|
---|
295 | 0x0011a0c8 <+456>: ldr r0, [r3, #356] ; 0x164
|
---|
296 | 0x0011a0cc <+460>: ldr r1, [r3, #348] ; 0x15c
|
---|
297 | 0x0011a0d0 <+464>: ldr lr, [r3, #344] ; 0x158
|
---|
298 | 0x0011a0d4 <+468>: ldr r12, [r3, #352] ; 0x160
|
---|
299 | 0x0011a0d8 <+472>: cmp r1, r0
|
---|
300 | 0x0011a0dc <+476>: cmpeq lr, r12
|
---|
301 | 0x0011a0e0 <+480>: orr r1, r1, r0
|
---|
302 | 0x0011a0e4 <+484>: moveq r0, #1
|
---|
303 | 0x0011a0e8 <+488>: movne r0, #0
|
---|
304 | 0x0011a0ec <+492>: orrs r0, r0, r1, lsr #31
|
---|
305 | 0x0011a0f0 <+496>: popne {r4, r5, r6, r7, r8, r9, r10, pc}
|
---|
306 | 0x0011a0f4 <+500>: add r2, r2, r2, lsl #1
|
---|
307 | 0x0011a0f8 <+504>: add r3, r3, r2, lsl #1
|
---|
308 | 0x0011a0fc <+508>: ldr r0, [r3, #376] ; 0x178
|
---|
309 | 0x0011a100 <+512>: add r3, r3, #376 ; 0x178
|
---|
310 | 0x0011a104 <+516>: str r0, [r5]
|
---|
311 | 0x0011a108 <+520>: ldrh r3, [r3, #4]
|
---|
312 | 0x0011a10c <+524>: strh r3, [r5, #4]
|
---|
313 | 0x0011a110 <+528>: pop {r4, r5, r6, r7, r8, r9, r10, pc}
|
---|
314 | 0x0011a114 <+532>: add r2, r2, r2, lsl #1
|
---|
315 | 0x0011a118 <+536>: add r2, r3, r2, lsl #1
|
---|
316 | 0x0011a11c <+540>: ldr r0, [r2, #296] ; 0x128
|
---|
317 | 0x0011a120 <+544>: add r1, r2, #296 ; 0x128
|
---|
318 | 0x0011a124 <+548>: str r0, [r6]
|
---|
319 | 0x0011a128 <+552>: ldrh r2, [r1, #4]
|
---|
320 | 0x0011a12c <+556>: strh r2, [r6, #4]
|
---|
321 | 0x0011a130 <+560>: b 0x11a0b0 <hidScanInput+432>
|
---|
322 | 0x0011a134 <+564>: add r2, r2, #25
|
---|
323 | 0x0011a138 <+568>: lsl r1, r2, #3
|
---|
324 | 0x0011a13c <+572>: add r1, r1, #4
|
---|
325 | 0x0011a140 <+576>: ldr r1, [r3, r1]
|
---|
326 | 0x0011a144 <+580>: ldr r0, [r3, r2, lsl #3]
|
---|
327 | 0x0011a148 <+584>: cmp r1, #0
|
---|
328 | 0x0011a14c <+588>: ldrne r3, [r4]
|
---|
329 | 0x0011a150 <+592>: str r0, [r12]
|
---|
330 | 0x0011a154 <+596>: orrne r3, r3, #1048576 ; 0x100000
|
---|
331 | 0x0011a158 <+600>: strne r3, [r4]
|
---|
332 | 0x0011a15c <+604>: b 0x119ff4 <hidScanInput+244>
|
---|
333 | 0x0011a160 <+608>: lsl r1, r1, #4
|
---|
334 | 0x0011a164 <+612>: add r2, r1, #40 ; 0x28
|
---|
335 | 0x0011a168 <+616>: add r1, r1, #52 ; 0x34
|
---|
336 | 0x0011a16c <+620>: b 0x119fa0 <hidScanInput+160>
|
---|
337 | 0x0011a170 <+624>: adcseq r2, r10, r4, ror #26
|
---|
338 | 0x0011a174 <+628>: adcseq r2, r10, r8, ror #26
|
---|
339 | 0x0011a178 <+632>: adcseq r2, r10, r12, asr sp
|
---|
340 | 0x0011a17c <+636>: adcseq r2, r10, r8, lsr #26
|
---|
341 | 0x0011a180 <+640>: adcseq r2, r10, r4, lsr sp
|
---|
342 | 0x0011a184 <+644>: adcseq r2, r10, r0, lsr sp
|
---|
343 | 0x0011a188 <+648>: adcseq r2, r10, r4, ror sp
|
---|
344 | 0x0011a18c <+652>: adcseq r0, r9, r12
|
---|
345 | 0x0011a190 <+656>: adcseq r2, r10, r0, ror #26
|
---|
346 | 0x0011a194 <+660>: adcseq r2, r10, r0, ror sp
|
---|
347 | 0x0011a198 <+664>: adcseq r0, r9, r8
|
---|
348 | 0x0011a19c <+668>: adcseq r2, r10, r12, ror #26
|
---|
349 | 0x0011a1a0 <+672>: adcseq r0, r9, r0, lsl r0
|
---|
350 | End of assembler dump.
|
---|
351 |
|
---|
352 | (gdb) disas /m hidScanInput
|
---|
353 | Dump of assembler code for function hidScanInput:
|
---|
354 | 157 u32 hidCheckSectionUpdateTime(vu32 *sharedmem_section, u32 id)
|
---|
355 |
|
---|
356 | 158 {
|
---|
357 | 159 s64 tick0=0, tick1=0;
|
---|
358 |
|
---|
359 | 160
|
---|
360 | 161 if(id==0)
|
---|
361 | 0x00119f5c <+92>: cmp r1, r2
|
---|
362 | 0x00119f60 <+96>: bne 0x11a160 <hidScanInput+608>
|
---|
363 | 0x00119fc0 <+192>: cmp r1, #0
|
---|
364 | 0x00119fc4 <+196>: bne 0x11a134 <hidScanInput+564>
|
---|
365 | 0x0011a07c <+380>: cmp r1, #0
|
---|
366 | 0x0011a080 <+384>: bne 0x11a114 <hidScanInput+532>
|
---|
367 | 0x0011a0c0 <+448>: cmp r1, #0
|
---|
368 | 0x0011a0c4 <+452>: bne 0x11a0f4 <hidScanInput+500>
|
---|
369 |
|
---|
370 | 162 {
|
---|
371 | 163 tick0 = *((u64*)&sharedmem_section[0]);
|
---|
372 | 0x00119f68 <+104>: ldr r2, [r3, #4]
|
---|
373 | 0x00119fcc <+204>: ldr r1, [r3, #172] ; 0xac
|
---|
374 | 0x0011a088 <+392>: ldr r1, [r3, #268] ; 0x10c
|
---|
375 | 0x0011a090 <+400>: ldr lr, [r3, #264] ; 0x108
|
---|
376 | 0x0011a0cc <+460>: ldr r1, [r3, #348] ; 0x15c
|
---|
377 | 0x0011a0d0 <+464>: ldr lr, [r3, #344] ; 0x158
|
---|
378 |
|
---|
379 | 164 tick1 = *((u64*)&sharedmem_section[2]);
|
---|
380 | 0x00119f64 <+100>: ldrd r0, [r3, #8]
|
---|
381 | 0x00119fc8 <+200>: ldr r0, [r3, #180] ; 0xb4
|
---|
382 | 0x00119fd0 <+208>: ldr lr, [r3, #176] ; 0xb0
|
---|
383 | 0x0011a084 <+388>: ldr r0, [r3, #272] ; 0x110
|
---|
384 | 0x0011a08c <+396>: ldr r12, [r3, #276] ; 0x114
|
---|
385 | 0x0011a0c8 <+456>: ldr r0, [r3, #356] ; 0x164
|
---|
386 | 0x0011a0d4 <+468>: ldr r12, [r3, #352] ; 0x160
|
---|
387 |
|
---|
388 | 165
|
---|
389 | 166 if(tick0==tick1 || tick0<0 || tick1<0)return 1;
|
---|
390 | 0x00119f6c <+108>: ldr r9, [r3]
|
---|
391 | 0x00119f70 <+112>: cmp r2, r1
|
---|
392 | 0x00119f74 <+116>: cmpeq r9, r0
|
---|
393 | 0x00119f78 <+120>: orr r2, r2, r1
|
---|
394 | 0x00119f7c <+124>: moveq r1, #1
|
---|
395 | 0x00119f80 <+128>: movne r1, #0
|
---|
396 | 0x00119f84 <+132>: orrs r1, r1, r2, lsr #31
|
---|
397 | 0x00119f88 <+136>: moveq r1, #52 ; 0x34
|
---|
398 | 0x00119f8c <+140>: moveq r2, #40 ; 0x28
|
---|
399 | 0x00119f90 <+144>: bne 0x119fb0 <hidScanInput+176>
|
---|
400 | 0x00119f94 <+148>: b 0x119fa0 <hidScanInput+160>
|
---|
401 | 0x00119f98 <+152>: mov r1, #164 ; 0xa4
|
---|
402 | 0x00119f9c <+156>: mov r2, #152 ; 0x98
|
---|
403 | 0x00119fd4 <+212>: ldr r9, [r3, #168] ; 0xa8
|
---|
404 | 0x00119fd8 <+216>: cmp r1, r0
|
---|
405 | 0x00119fdc <+220>: cmpeq r9, lr
|
---|
406 | 0x00119fe0 <+224>: orr r1, r1, r0
|
---|
407 | 0x00119fe4 <+228>: moveq r0, #1
|
---|
408 | 0x00119fe8 <+232>: movne r0, #0
|
---|
409 | 0x00119fec <+236>: orrs r0, r0, r1, lsr #31
|
---|
410 | 0x00119ff0 <+240>: beq 0x11a134 <hidScanInput+564>
|
---|
411 | 0x0011a094 <+404>: cmp r1, r12
|
---|
412 | 0x0011a098 <+408>: cmpeq lr, r0
|
---|
413 | 0x0011a09c <+412>: moveq r0, #1
|
---|
414 | 0x0011a0a0 <+416>: movne r0, #0
|
---|
415 | 0x0011a0a4 <+420>: orr r1, r1, r12
|
---|
416 | 0x0011a0a8 <+424>: orrs r0, r0, r1, lsr #31
|
---|
417 | 0x0011a0ac <+428>: beq 0x11a114 <hidScanInput+532>
|
---|
418 | 0x0011a0d8 <+472>: cmp r1, r0
|
---|
419 | 0x0011a0dc <+476>: cmpeq lr, r12
|
---|
420 | 0x0011a0e0 <+480>: orr r1, r1, r0
|
---|
421 | 0x0011a0e4 <+484>: moveq r0, #1
|
---|
422 | 0x0011a0e8 <+488>: movne r0, #0
|
---|
423 | 0x0011a0ec <+492>: orrs r0, r0, r1, lsr #31
|
---|
424 | 0x0011a0f0 <+496>: popne {r4, r5, r6, r7, r8, r9, r10, pc}
|
---|
425 |
|
---|
426 | 167 }
|
---|
427 | 168
|
---|
428 | 169 return 0;
|
---|
429 | 170 }
|
---|
430 | 171
|
---|
431 | 172 void hidScanInput(void)
|
---|
432 | 173 {
|
---|
433 | 0x00119f00 <+0>: push {r4, r5, r6, r7, r8, r9, r10, lr}
|
---|
434 |
|
---|
435 | 174 u32 Id=0;
|
---|
436 |
|
---|
437 | 175
|
---|
438 | 176 kOld = kHeld;
|
---|
439 | 0x00119f04 <+4>: ldr r4, [pc, #612] ; 0x11a170 <hidScanInput+624>
|
---|
440 | 0x00119f08 <+8>: ldr r7, [pc, #612] ; 0x11a174 <hidScanInput+628>
|
---|
441 | 0x00119f0c <+12>: ldr r3, [r4]
|
---|
442 | 0x00119f14 <+20>: str r3, [r7]
|
---|
443 |
|
---|
444 | 177 irrstScanInput();
|
---|
445 | 0x00119f18 <+24>: bl 0x11a6c4 <irrstScanInput>
|
---|
446 |
|
---|
447 | 178
|
---|
448 | 179 kHeld = 0;
|
---|
449 | 0x00119f1c <+28>: mov r2, #0
|
---|
450 | 0x00119f3c <+60>: str r2, [r4]
|
---|
451 |
|
---|
452 | 180 memset(&cPos, 0, sizeof(circlePosition));
|
---|
453 | 0x00119f30 <+48>: ldr lr, [pc, #588] ; 0x11a184 <hidScanInput+644>
|
---|
454 | 0x00119f40 <+64>: str r2, [lr]
|
---|
455 |
|
---|
456 | 181 memset(&tPos, 0, sizeof(touchPosition));
|
---|
457 | 0x00119f34 <+52>: ldr r12, [pc, #588] ; 0x11a188 <hidScanInput+648>
|
---|
458 | 0x00119f44 <+68>: str r2, [r12]
|
---|
459 |
|
---|
460 | 182 memset(&aVec, 0, sizeof(accelVector));
|
---|
461 | 0x00119f24 <+36>: ldr r6, [pc, #592] ; 0x11a17c <hidScanInput+636>
|
---|
462 | 0x00119f48 <+72>: str r2, [r6]
|
---|
463 | 0x00119f4c <+76>: strh r2, [r6, #4]
|
---|
464 |
|
---|
465 | 183 memset(&gRate, 0, sizeof(angularRate));
|
---|
466 | 0x00119f2c <+44>: ldr r5, [pc, #588] ; 0x11a180 <hidScanInput+640>
|
---|
467 | 0x00119f50 <+80>: str r2, [r5]
|
---|
468 | 0x00119f54 <+84>: strh r2, [r5, #4]
|
---|
469 |
|
---|
470 | 184
|
---|
471 | 185 Id = hidSharedMem[4];//PAD / circle-pad
|
---|
472 | 0x00119f10 <+16>: ldr r8, [pc, #608] ; 0x11a178 <hidScanInput+632>
|
---|
473 | 0x00119f20 <+32>: ldr r3, [r8]
|
---|
474 | => 0x00119f28 <+40>: ldr r1, [r3, #16]
|
---|
475 |
|
---|
476 | 186 if(Id>7)Id=7;
|
---|
477 | 0x00119f38 <+56>: cmp r1, #7
|
---|
478 | 0x00119f58 <+88>: bhi 0x119f98 <hidScanInput+152>
|
---|
479 |
|
---|
480 | 187 if(hidCheckSectionUpdateTime(hidSharedMem, Id)==0)
|
---|
481 |
|
---|
482 | 188 {
|
---|
483 | 189 kHeld = hidSharedMem[10 + Id*4];
|
---|
484 | 0x00119fa0 <+160>: ldr r2, [r3, r2]
|
---|
485 | 0x00119fa8 <+168>: str r2, [r4]
|
---|
486 | 0x0011a160 <+608>: lsl r1, r1, #4
|
---|
487 | 0x0011a164 <+612>: add r2, r1, #40 ; 0x28
|
---|
488 |
|
---|
489 | 190 cPos = *(circlePosition*)&hidSharedMem[10 + Id*4 + 3];
|
---|
490 | 0x00119fa4 <+164>: ldr r0, [r3, r1]
|
---|
491 | 0x00119fac <+172>: str r0, [lr]
|
---|
492 | 0x0011a168 <+616>: add r1, r1, #52 ; 0x34
|
---|
493 | 0x0011a16c <+620>: b 0x119fa0 <hidScanInput+160>
|
---|
494 | 0x0011a170 <+624>: adcseq r2, r10, r4, ror #26
|
---|
495 | 0x0011a174 <+628>: adcseq r2, r10, r8, ror #26
|
---|
496 | 0x0011a178 <+632>: adcseq r2, r10, r12, asr sp
|
---|
497 | 0x0011a17c <+636>: adcseq r2, r10, r8, lsr #26
|
---|
498 | 0x0011a180 <+640>: adcseq r2, r10, r4, lsr sp
|
---|
499 | 0x0011a184 <+644>: adcseq r2, r10, r0, lsr sp
|
---|
500 | 0x0011a188 <+648>: adcseq r2, r10, r4, ror sp
|
---|
501 | 0x0011a18c <+652>: adcseq r0, r9, r12
|
---|
502 | 0x0011a190 <+656>: adcseq r2, r10, r0, ror #26
|
---|
503 | 0x0011a194 <+660>: adcseq r2, r10, r0, ror sp
|
---|
504 | 0x0011a198 <+664>: adcseq r0, r9, r8
|
---|
505 | 0x0011a19c <+668>: adcseq r2, r10, r12, ror #26
|
---|
506 | 0x0011a1a0 <+672>: adcseq r0, r9, r0, lsl r0
|
---|
507 |
|
---|
508 | 191 }
|
---|
509 | 192
|
---|
510 | 193 Id = hidSharedMem[42 + 4];//Touch-screen
|
---|
511 | 0x00119fb0 <+176>: ldr r1, [r3, #184] ; 0xb8
|
---|
512 |
|
---|
513 | 194 if(Id>7)Id=7;
|
---|
514 | 0x00119fb4 <+180>: cmp r1, #7
|
---|
515 | 0x00119fb8 <+184>: movcc r2, r1
|
---|
516 | 0x00119fbc <+188>: movcs r2, #7
|
---|
517 |
|
---|
518 | 195 if(hidCheckSectionUpdateTime(&hidSharedMem[42], Id)==0)
|
---|
519 |
|
---|
520 | 196 {
|
---|
521 | 197 tPos = *(touchPosition*)&hidSharedMem[42 + 8 + Id*2];
|
---|
522 | 0x0011a134 <+564>: add r2, r2, #25
|
---|
523 | 0x0011a138 <+568>: lsl r1, r2, #3
|
---|
524 | 0x0011a144 <+580>: ldr r0, [r3, r2, lsl #3]
|
---|
525 | 0x0011a150 <+592>: str r0, [r12]
|
---|
526 |
|
---|
527 | 198 if (hidSharedMem[42 + 8 + Id*2 + 1])
|
---|
528 | 0x0011a13c <+572>: add r1, r1, #4
|
---|
529 | 0x0011a140 <+576>: ldr r1, [r3, r1]
|
---|
530 | 0x0011a148 <+584>: cmp r1, #0
|
---|
531 |
|
---|
532 | 199 kHeld |= KEY_TOUCH;
|
---|
533 | 0x0011a14c <+588>: ldrne r3, [r4]
|
---|
534 | 0x0011a154 <+596>: orrne r3, r3, #1048576 ; 0x100000
|
---|
535 | 0x0011a158 <+600>: strne r3, [r4]
|
---|
536 | 0x0011a15c <+604>: b 0x119ff4 <hidScanInput+244>
|
---|
537 |
|
---|
538 | 200 }
|
---|
539 | 201
|
---|
540 | 202 kHeld |= irrstKeysHeld();
|
---|
541 | 0x00119ff4 <+244>: bl 0x11a778 <irrstKeysHeld>
|
---|
542 | 0x00119ff8 <+248>: ldr r1, [r4]
|
---|
543 | 0x0011a004 <+260>: orr r0, r0, r1
|
---|
544 | 0x0011a024 <+292>: str r0, [r4]
|
---|
545 |
|
---|
546 | 203
|
---|
547 | 204 kDown = (~kOld) & kHeld;
|
---|
548 | 0x0011a000 <+256>: ldr r2, [r7]
|
---|
549 | 0x0011a008 <+264>: ldr lr, [pc, #384] ; 0x11a190 <hidScanInput+656>
|
---|
550 | 0x0011a014 <+276>: bic r1, r0, r2
|
---|
551 | 0x0011a018 <+280>: str r1, [lr]
|
---|
552 |
|
---|
553 | 205 kUp = kOld & (~kHeld);
|
---|
554 | 0x0011a010 <+272>: ldr r12, [pc, #380] ; 0x11a194 <hidScanInput+660>
|
---|
555 | 0x0011a020 <+288>: bic lr, r2, r0
|
---|
556 | 0x0011a028 <+296>: str lr, [r12]
|
---|
557 |
|
---|
558 | 206
|
---|
559 | 207 if (kDelay)
|
---|
560 | 0x00119ffc <+252>: ldr r3, [pc, #392] ; 0x11a18c <hidScanInput+652>
|
---|
561 | 0x0011a00c <+268>: ldr r3, [r3]
|
---|
562 | 0x0011a01c <+284>: cmp r3, #0
|
---|
563 | 0x0011a02c <+300>: beq 0x11a068 <hidScanInput+360>
|
---|
564 |
|
---|
565 | 208 {
|
---|
566 | 209 if (kHeld != kOld)
|
---|
567 | 0x0011a030 <+304>: cmp r0, r2
|
---|
568 |
|
---|
569 | 210 {
|
---|
570 | 211 kCount = kDelay;
|
---|
571 |
|
---|
572 | 212 kRepeat = kDown;
|
---|
573 | 0x0011a038 <+312>: ldrne r2, [pc, #348] ; 0x11a19c <hidScanInput+668>
|
---|
574 | 0x0011a040 <+320>: strne r1, [r2]
|
---|
575 |
|
---|
576 | 213 }
|
---|
577 | 214
|
---|
578 | 215 if (--kCount == 0)
|
---|
579 | 0x0011a034 <+308>: ldreq r2, [pc, #348] ; 0x11a198 <hidScanInput+664>
|
---|
580 | 0x0011a03c <+316>: ldreq r3, [r2]
|
---|
581 | 0x0011a044 <+324>: sub r3, r3, #1
|
---|
582 | 0x0011a048 <+328>: ldrne r2, [pc, #328] ; 0x11a198 <hidScanInput+664>
|
---|
583 | 0x0011a04c <+332>: cmp r3, #0
|
---|
584 | 0x0011a050 <+336>: str r3, [r2]
|
---|
585 |
|
---|
586 | 216 {
|
---|
587 | 217 kCount = kInterval;
|
---|
588 | 0x0011a054 <+340>: ldreq r3, [pc, #324] ; 0x11a1a0 <hidScanInput+672>
|
---|
589 | 0x0011a058 <+344>: ldreq r3, [r3]
|
---|
590 | 0x0011a05c <+348>: streq r3, [r2]
|
---|
591 |
|
---|
592 | 218 kRepeat = kHeld;
|
---|
593 | 0x0011a060 <+352>: ldreq r3, [pc, #308] ; 0x11a19c <hidScanInput+668>
|
---|
594 | 0x0011a064 <+356>: streq r0, [r3]
|
---|
595 |
|
---|
596 | 219 }
|
---|
597 | 220 }
|
---|
598 | 221
|
---|
599 | 222 Id = hidSharedMem[66 + 4];//Accelerometer
|
---|
600 | 0x0011a068 <+360>: ldr r3, [r8]
|
---|
601 | 0x0011a06c <+364>: ldr r1, [r3, #280] ; 0x118
|
---|
602 |
|
---|
603 | 223 if(Id>7)Id=7;
|
---|
604 | 0x0011a070 <+368>: cmp r1, #7
|
---|
605 | 0x0011a074 <+372>: movcc r2, r1
|
---|
606 | 0x0011a078 <+376>: movcs r2, #7
|
---|
607 |
|
---|
608 | 224 if(hidCheckSectionUpdateTime(&hidSharedMem[66], Id)==0)
|
---|
609 |
|
---|
610 | 225 {
|
---|
611 | 226 aVec = ((accelVector*)&hidSharedMem[66 + 8])[Id];
|
---|
612 | 0x0011a114 <+532>: add r2, r2, r2, lsl #1
|
---|
613 | 0x0011a118 <+536>: add r2, r3, r2, lsl #1
|
---|
614 | 0x0011a11c <+540>: ldr r0, [r2, #296] ; 0x128
|
---|
615 | 0x0011a120 <+544>: add r1, r2, #296 ; 0x128
|
---|
616 | 0x0011a124 <+548>: str r0, [r6]
|
---|
617 | 0x0011a128 <+552>: ldrh r2, [r1, #4]
|
---|
618 | 0x0011a12c <+556>: strh r2, [r6, #4]
|
---|
619 | 0x0011a130 <+560>: b 0x11a0b0 <hidScanInput+432>
|
---|
620 |
|
---|
621 | 227 }
|
---|
622 | 228
|
---|
623 | 229 Id = hidSharedMem[86 + 4];//Gyroscope
|
---|
624 | 0x0011a0b0 <+432>: ldr r1, [r3, #360] ; 0x168
|
---|
625 |
|
---|
626 | 230 if(Id>31)Id=31;
|
---|
627 | 0x0011a0b4 <+436>: cmp r1, #31
|
---|
628 | 0x0011a0b8 <+440>: movcc r2, r1
|
---|
629 | 0x0011a0bc <+444>: movcs r2, #31
|
---|
630 |
|
---|
631 | 231 if(hidCheckSectionUpdateTime(&hidSharedMem[86], Id)==0)
|
---|
632 |
|
---|
633 | 232 {
|
---|
634 | 233 gRate = ((angularRate*)&hidSharedMem[86 + 8])[Id];
|
---|
635 | 0x0011a0f4 <+500>: add r2, r2, r2, lsl #1
|
---|
636 | 0x0011a0f8 <+504>: add r3, r3, r2, lsl #1
|
---|
637 | 0x0011a0fc <+508>: ldr r0, [r3, #376] ; 0x178
|
---|
638 | 0x0011a100 <+512>: add r3, r3, #376 ; 0x178
|
---|
639 | 0x0011a104 <+516>: str r0, [r5]
|
---|
640 | 0x0011a108 <+520>: ldrh r3, [r3, #4]
|
---|
641 | 0x0011a10c <+524>: strh r3, [r5, #4]
|
---|
642 |
|
---|
643 | 234 }
|
---|
644 | 235 }
|
---|
645 | 0x0011a110 <+528>: pop {r4, r5, r6, r7, r8, r9, r10, pc}
|
---|
646 |
|
---|
647 | (gdb) disassemble/s hidScanInput
|
---|
648 | Dump of assembler code for function hidScanInput:
|
---|
649 | /home/atrus/Documents/repos/libctru-2.0.1/libctru/source/services/hid.c:
|
---|
650 | 176 kOld = kHeld;
|
---|
651 | 0x00119f00 <+0>: push {r4, r5, r6, r7, r8, r9, r10, lr}
|
---|
652 | 0x00119f04 <+4>: ldr r4, [pc, #612] ; 0x11a170 <hidScanInput+624>
|
---|
653 | 0x00119f08 <+8>: ldr r7, [pc, #612] ; 0x11a174 <hidScanInput+628>
|
---|
654 | 0x00119f0c <+12>: ldr r3, [r4]
|
---|
655 |
|
---|
656 | 184
|
---|
657 | 185 Id = hidSharedMem[4];//PAD / circle-pad
|
---|
658 | 0x00119f10 <+16>: ldr r8, [pc, #608] ; 0x11a178 <hidScanInput+632>
|
---|
659 |
|
---|
660 | 176 kOld = kHeld;
|
---|
661 | 0x00119f14 <+20>: str r3, [r7]
|
---|
662 |
|
---|
663 | 177 irrstScanInput();
|
---|
664 | 0x00119f18 <+24>: bl 0x11a6c4 <irrstScanInput>
|
---|
665 |
|
---|
666 | 178
|
---|
667 | 179 kHeld = 0;
|
---|
668 | 0x00119f1c <+28>: mov r2, #0
|
---|
669 |
|
---|
670 | 184
|
---|
671 | 185 Id = hidSharedMem[4];//PAD / circle-pad
|
---|
672 | 0x00119f20 <+32>: ldr r3, [r8]
|
---|
673 |
|
---|
674 | 182 memset(&aVec, 0, sizeof(accelVector));
|
---|
675 | 0x00119f24 <+36>: ldr r6, [pc, #592] ; 0x11a17c <hidScanInput+636>
|
---|
676 |
|
---|
677 | 184
|
---|
678 | 185 Id = hidSharedMem[4];//PAD / circle-pad
|
---|
679 | => 0x00119f28 <+40>: ldr r1, [r3, #16]
|
---|
680 |
|
---|
681 | 183 memset(&gRate, 0, sizeof(angularRate));
|
---|
682 | 0x00119f2c <+44>: ldr r5, [pc, #588] ; 0x11a180 <hidScanInput+640>
|
---|
683 |
|
---|
684 | 180 memset(&cPos, 0, sizeof(circlePosition));
|
---|
685 | 0x00119f30 <+48>: ldr lr, [pc, #588] ; 0x11a184 <hidScanInput+644>
|
---|
686 |
|
---|
687 | 181 memset(&tPos, 0, sizeof(touchPosition));
|
---|
688 | 0x00119f34 <+52>: ldr r12, [pc, #588] ; 0x11a188 <hidScanInput+648>
|
---|
689 |
|
---|
690 | 186 if(Id>7)Id=7;
|
---|
691 | 0x00119f38 <+56>: cmp r1, #7
|
---|
692 |
|
---|
693 | 179 kHeld = 0;
|
---|
694 | 0x00119f3c <+60>: str r2, [r4]
|
---|
695 |
|
---|
696 | 180 memset(&cPos, 0, sizeof(circlePosition));
|
---|
697 | 0x00119f40 <+64>: str r2, [lr]
|
---|
698 |
|
---|
699 | 181 memset(&tPos, 0, sizeof(touchPosition));
|
---|
700 | 0x00119f44 <+68>: str r2, [r12]
|
---|
701 |
|
---|
702 | 182 memset(&aVec, 0, sizeof(accelVector));
|
---|
703 | 0x00119f48 <+72>: str r2, [r6]
|
---|
704 | 0x00119f4c <+76>: strh r2, [r6, #4]
|
---|
705 |
|
---|
706 | 183 memset(&gRate, 0, sizeof(angularRate));
|
---|
707 | 0x00119f50 <+80>: str r2, [r5]
|
---|
708 | 0x00119f54 <+84>: strh r2, [r5, #4]
|
---|
709 |
|
---|
710 | 186 if(Id>7)Id=7;
|
---|
711 | 0x00119f58 <+88>: bhi 0x119f98 <hidScanInput+152>
|
---|
712 |
|
---|
713 | 161 if(id==0)
|
---|
714 | 0x00119f5c <+92>: cmp r1, r2
|
---|
715 | 0x00119f60 <+96>: bne 0x11a160 <hidScanInput+608>
|
---|
716 |
|
---|
717 | 162 {
|
---|
718 | 163 tick0 = *((u64*)&sharedmem_section[0]);
|
---|
719 | 0x00119f64 <+100>: ldrd r0, [r3, #8]
|
---|
720 |
|
---|
721 | 165
|
---|
722 | 166 if(tick0==tick1 || tick0<0 || tick1<0)return 1;
|
---|
723 | 0x00119f68 <+104>: ldr r2, [r3, #4]
|
---|
724 | 0x00119f6c <+108>: ldr r9, [r3]
|
---|
725 | 0x00119f70 <+112>: cmp r2, r1
|
---|
726 | 0x00119f74 <+116>: cmpeq r9, r0
|
---|
727 | 0x00119f78 <+120>: orr r2, r2, r1
|
---|
728 | 0x00119f7c <+124>: moveq r1, #1
|
---|
729 | 0x00119f80 <+128>: movne r1, #0
|
---|
730 | 0x00119f84 <+132>: orrs r1, r1, r2, lsr #31
|
---|
731 | 0x00119f88 <+136>: moveq r1, #52 ; 0x34
|
---|
732 | 0x00119f8c <+140>: moveq r2, #40 ; 0x28
|
---|
733 | 0x00119f90 <+144>: bne 0x119fb0 <hidScanInput+176>
|
---|
734 | 0x00119f94 <+148>: b 0x119fa0 <hidScanInput+160>
|
---|
735 | 0x00119f98 <+152>: mov r1, #164 ; 0xa4
|
---|
736 | 0x00119f9c <+156>: mov r2, #152 ; 0x98
|
---|
737 |
|
---|
738 | 187 if(hidCheckSectionUpdateTime(hidSharedMem, Id)==0)
|
---|
739 | 188 {
|
---|
740 | 189 kHeld = hidSharedMem[10 + Id*4];
|
---|
741 | 0x00119fa0 <+160>: ldr r2, [r3, r2]
|
---|
742 |
|
---|
743 | 190 cPos = *(circlePosition*)&hidSharedMem[10 + Id*4 + 3];
|
---|
744 | 0x00119fa4 <+164>: ldr r0, [r3, r1]
|
---|
745 |
|
---|
746 | 189 kHeld = hidSharedMem[10 + Id*4];
|
---|
747 | 0x00119fa8 <+168>: str r2, [r4]
|
---|
748 |
|
---|
749 | 190 cPos = *(circlePosition*)&hidSharedMem[10 + Id*4 + 3];
|
---|
750 | 0x00119fac <+172>: str r0, [lr]
|
---|
751 |
|
---|
752 | 191 }
|
---|
753 | 192
|
---|
754 | 193 Id = hidSharedMem[42 + 4];//Touch-screen
|
---|
755 | 0x00119fb0 <+176>: ldr r1, [r3, #184] ; 0xb8
|
---|
756 |
|
---|
757 | 194 if(Id>7)Id=7;
|
---|
758 | 0x00119fb4 <+180>: cmp r1, #7
|
---|
759 | 0x00119fb8 <+184>: movcc r2, r1
|
---|
760 | 0x00119fbc <+188>: movcs r2, #7
|
---|
761 |
|
---|
762 | 161 if(id==0)
|
---|
763 | 0x00119fc0 <+192>: cmp r1, #0
|
---|
764 | 0x00119fc4 <+196>: bne 0x11a134 <hidScanInput+564>
|
---|
765 |
|
---|
766 | 162 {
|
---|
767 | 163 tick0 = *((u64*)&sharedmem_section[0]);
|
---|
768 | 0x00119fc8 <+200>: ldr r0, [r3, #180] ; 0xb4
|
---|
769 | 0x00119fcc <+204>: ldr r1, [r3, #172] ; 0xac
|
---|
770 |
|
---|
771 | 164 tick1 = *((u64*)&sharedmem_section[2]);
|
---|
772 | 0x00119fd0 <+208>: ldr lr, [r3, #176] ; 0xb0
|
---|
773 |
|
---|
774 | 165
|
---|
775 | 166 if(tick0==tick1 || tick0<0 || tick1<0)return 1;
|
---|
776 | 0x00119fd4 <+212>: ldr r9, [r3, #168] ; 0xa8
|
---|
777 | 0x00119fd8 <+216>: cmp r1, r0
|
---|
778 | 0x00119fdc <+220>: cmpeq r9, lr
|
---|
779 | 0x00119fe0 <+224>: orr r1, r1, r0
|
---|
780 | 0x00119fe4 <+228>: moveq r0, #1
|
---|
781 | 0x00119fe8 <+232>: movne r0, #0
|
---|
782 | 0x00119fec <+236>: orrs r0, r0, r1, lsr #31
|
---|
783 | 0x00119ff0 <+240>: beq 0x11a134 <hidScanInput+564>
|
---|
784 |
|
---|
785 | 200 }
|
---|
786 | 201
|
---|
787 | 202 kHeld |= irrstKeysHeld();
|
---|
788 | 0x00119ff4 <+244>: bl 0x11a778 <irrstKeysHeld>
|
---|
789 | 0x00119ff8 <+248>: ldr r1, [r4]
|
---|
790 |
|
---|
791 | 206
|
---|
792 | 207 if (kDelay)
|
---|
793 | 0x00119ffc <+252>: ldr r3, [pc, #392] ; 0x11a18c <hidScanInput+652>
|
---|
794 |
|
---|
795 | 204 kDown = (~kOld) & kHeld;
|
---|
796 | 0x0011a000 <+256>: ldr r2, [r7]
|
---|
797 |
|
---|
798 | 202 kHeld |= irrstKeysHeld();
|
---|
799 | 0x0011a004 <+260>: orr r0, r0, r1
|
---|
800 |
|
---|
801 | 203
|
---|
802 | 204 kDown = (~kOld) & kHeld;
|
---|
803 | 0x0011a008 <+264>: ldr lr, [pc, #384] ; 0x11a190 <hidScanInput+656>
|
---|
804 |
|
---|
805 | 206
|
---|
806 | 207 if (kDelay)
|
---|
807 | 0x0011a00c <+268>: ldr r3, [r3]
|
---|
808 |
|
---|
809 | 205 kUp = kOld & (~kHeld);
|
---|
810 | 0x0011a010 <+272>: ldr r12, [pc, #380] ; 0x11a194 <hidScanInput+660>
|
---|
811 |
|
---|
812 | 204 kDown = (~kOld) & kHeld;
|
---|
813 | 0x0011a014 <+276>: bic r1, r0, r2
|
---|
814 | 0x0011a018 <+280>: str r1, [lr]
|
---|
815 |
|
---|
816 | 206
|
---|
817 | 207 if (kDelay)
|
---|
818 | 0x0011a01c <+284>: cmp r3, #0
|
---|
819 |
|
---|
820 | 205 kUp = kOld & (~kHeld);
|
---|
821 | 0x0011a020 <+288>: bic lr, r2, r0
|
---|
822 |
|
---|
823 | 202 kHeld |= irrstKeysHeld();
|
---|
824 | 0x0011a024 <+292>: str r0, [r4]
|
---|
825 |
|
---|
826 | 205 kUp = kOld & (~kHeld);
|
---|
827 | 0x0011a028 <+296>: str lr, [r12]
|
---|
828 |
|
---|
829 | 206
|
---|
830 | 207 if (kDelay)
|
---|
831 | 0x0011a02c <+300>: beq 0x11a068 <hidScanInput+360>
|
---|
832 |
|
---|
833 | 208 {
|
---|
834 | 209 if (kHeld != kOld)
|
---|
835 | 0x0011a030 <+304>: cmp r0, r2
|
---|
836 |
|
---|
837 | 213 }
|
---|
838 | 214
|
---|
839 | 215 if (--kCount == 0)
|
---|
840 | 0x0011a034 <+308>: ldreq r2, [pc, #348] ; 0x11a198 <hidScanInput+664>
|
---|
841 |
|
---|
842 | 212 kRepeat = kDown;
|
---|
843 | 0x0011a038 <+312>: ldrne r2, [pc, #348] ; 0x11a19c <hidScanInput+668>
|
---|
844 |
|
---|
845 | 213 }
|
---|
846 | 214
|
---|
847 | 215 if (--kCount == 0)
|
---|
848 | 0x0011a03c <+316>: ldreq r3, [r2]
|
---|
849 |
|
---|
850 | 212 kRepeat = kDown;
|
---|
851 | 0x0011a040 <+320>: strne r1, [r2]
|
---|
852 |
|
---|
853 | 213 }
|
---|
854 | 214
|
---|
855 | 215 if (--kCount == 0)
|
---|
856 | 0x0011a044 <+324>: sub r3, r3, #1
|
---|
857 | 0x0011a048 <+328>: ldrne r2, [pc, #328] ; 0x11a198 <hidScanInput+664>
|
---|
858 | 0x0011a04c <+332>: cmp r3, #0
|
---|
859 | 0x0011a050 <+336>: str r3, [r2]
|
---|
860 |
|
---|
861 | 216 {
|
---|
862 | 217 kCount = kInterval;
|
---|
863 | 0x0011a054 <+340>: ldreq r3, [pc, #324] ; 0x11a1a0 <hidScanInput+672>
|
---|
864 | 0x0011a058 <+344>: ldreq r3, [r3]
|
---|
865 | 0x0011a05c <+348>: streq r3, [r2]
|
---|
866 |
|
---|
867 | 218 kRepeat = kHeld;
|
---|
868 | 0x0011a060 <+352>: ldreq r3, [pc, #308] ; 0x11a19c <hidScanInput+668>
|
---|
869 | 0x0011a064 <+356>: streq r0, [r3]
|
---|
870 |
|
---|
871 | 219 }
|
---|
872 | 220 }
|
---|
873 | 221
|
---|
874 | 222 Id = hidSharedMem[66 + 4];//Accelerometer
|
---|
875 | 0x0011a068 <+360>: ldr r3, [r8]
|
---|
876 | 0x0011a06c <+364>: ldr r1, [r3, #280] ; 0x118
|
---|
877 |
|
---|
878 | 223 if(Id>7)Id=7;
|
---|
879 | 0x0011a070 <+368>: cmp r1, #7
|
---|
880 | 0x0011a074 <+372>: movcc r2, r1
|
---|
881 | 0x0011a078 <+376>: movcs r2, #7
|
---|
882 |
|
---|
883 | 161 if(id==0)
|
---|
884 | 0x0011a07c <+380>: cmp r1, #0
|
---|
885 | 0x0011a080 <+384>: bne 0x11a114 <hidScanInput+532>
|
---|
886 |
|
---|
887 | 162 {
|
---|
888 | 163 tick0 = *((u64*)&sharedmem_section[0]);
|
---|
889 | 0x0011a084 <+388>: ldr r0, [r3, #272] ; 0x110
|
---|
890 | 0x0011a088 <+392>: ldr r1, [r3, #268] ; 0x10c
|
---|
891 |
|
---|
892 | 164 tick1 = *((u64*)&sharedmem_section[2]);
|
---|
893 | 0x0011a08c <+396>: ldr r12, [r3, #276] ; 0x114
|
---|
894 |
|
---|
895 | 163 tick0 = *((u64*)&sharedmem_section[0]);
|
---|
896 | 0x0011a090 <+400>: ldr lr, [r3, #264] ; 0x108
|
---|
897 |
|
---|
898 | 165
|
---|
899 | 166 if(tick0==tick1 || tick0<0 || tick1<0)return 1;
|
---|
900 | 0x0011a094 <+404>: cmp r1, r12
|
---|
901 | 0x0011a098 <+408>: cmpeq lr, r0
|
---|
902 | 0x0011a09c <+412>: moveq r0, #1
|
---|
903 | 0x0011a0a0 <+416>: movne r0, #0
|
---|
904 | 0x0011a0a4 <+420>: orr r1, r1, r12
|
---|
905 | 0x0011a0a8 <+424>: orrs r0, r0, r1, lsr #31
|
---|
906 | 0x0011a0ac <+428>: beq 0x11a114 <hidScanInput+532>
|
---|
907 |
|
---|
908 | 227 }
|
---|
909 | 228
|
---|
910 | 229 Id = hidSharedMem[86 + 4];//Gyroscope
|
---|
911 | 0x0011a0b0 <+432>: ldr r1, [r3, #360] ; 0x168
|
---|
912 |
|
---|
913 | 230 if(Id>31)Id=31;
|
---|
914 | 0x0011a0b4 <+436>: cmp r1, #31
|
---|
915 | 0x0011a0b8 <+440>: movcc r2, r1
|
---|
916 | 0x0011a0bc <+444>: movcs r2, #31
|
---|
917 |
|
---|
918 | 161 if(id==0)
|
---|
919 | 0x0011a0c0 <+448>: cmp r1, #0
|
---|
920 | 0x0011a0c4 <+452>: bne 0x11a0f4 <hidScanInput+500>
|
---|
921 |
|
---|
922 | 162 {
|
---|
923 | 163 tick0 = *((u64*)&sharedmem_section[0]);
|
---|
924 | 0x0011a0c8 <+456>: ldr r0, [r3, #356] ; 0x164
|
---|
925 | 0x0011a0cc <+460>: ldr r1, [r3, #348] ; 0x15c
|
---|
926 | 0x0011a0d0 <+464>: ldr lr, [r3, #344] ; 0x158
|
---|
927 |
|
---|
928 | 164 tick1 = *((u64*)&sharedmem_section[2]);
|
---|
929 | 0x0011a0d4 <+468>: ldr r12, [r3, #352] ; 0x160
|
---|
930 |
|
---|
931 | 165
|
---|
932 | 166 if(tick0==tick1 || tick0<0 || tick1<0)return 1;
|
---|
933 | 0x0011a0d8 <+472>: cmp r1, r0
|
---|
934 | 0x0011a0dc <+476>: cmpeq lr, r12
|
---|
935 | 0x0011a0e0 <+480>: orr r1, r1, r0
|
---|
936 | 0x0011a0e4 <+484>: moveq r0, #1
|
---|
937 | 0x0011a0e8 <+488>: movne r0, #0
|
---|
938 | 0x0011a0ec <+492>: orrs r0, r0, r1, lsr #31
|
---|
939 | 0x0011a0f0 <+496>: popne {r4, r5, r6, r7, r8, r9, r10, pc}
|
---|
940 |
|
---|
941 | 231 if(hidCheckSectionUpdateTime(&hidSharedMem[86], Id)==0)
|
---|
942 | 232 {
|
---|
943 | 233 gRate = ((angularRate*)&hidSharedMem[86 + 8])[Id];
|
---|
944 | 0x0011a0f4 <+500>: add r2, r2, r2, lsl #1
|
---|
945 | 0x0011a0f8 <+504>: add r3, r3, r2, lsl #1
|
---|
946 | 0x0011a0fc <+508>: ldr r0, [r3, #376] ; 0x178
|
---|
947 | 0x0011a100 <+512>: add r3, r3, #376 ; 0x178
|
---|
948 | 0x0011a104 <+516>: str r0, [r5]
|
---|
949 | 0x0011a108 <+520>: ldrh r3, [r3, #4]
|
---|
950 | 0x0011a10c <+524>: strh r3, [r5, #4]
|
---|
951 |
|
---|
952 | 234 }
|
---|
953 | 235 }
|
---|
954 | 0x0011a110 <+528>: pop {r4, r5, r6, r7, r8, r9, r10, pc}
|
---|
955 |
|
---|
956 | 226 aVec = ((accelVector*)&hidSharedMem[66 + 8])[Id];
|
---|
957 | 0x0011a114 <+532>: add r2, r2, r2, lsl #1
|
---|
958 | 0x0011a118 <+536>: add r2, r3, r2, lsl #1
|
---|
959 | 0x0011a11c <+540>: ldr r0, [r2, #296] ; 0x128
|
---|
960 | 0x0011a120 <+544>: add r1, r2, #296 ; 0x128
|
---|
961 | 0x0011a124 <+548>: str r0, [r6]
|
---|
962 | 0x0011a128 <+552>: ldrh r2, [r1, #4]
|
---|
963 | 0x0011a12c <+556>: strh r2, [r6, #4]
|
---|
964 | 0x0011a130 <+560>: b 0x11a0b0 <hidScanInput+432>
|
---|
965 |
|
---|
966 | 197 tPos = *(touchPosition*)&hidSharedMem[42 + 8 + Id*2];
|
---|
967 | 0x0011a134 <+564>: add r2, r2, #25
|
---|
968 | 0x0011a138 <+568>: lsl r1, r2, #3
|
---|
969 |
|
---|
970 | 198 if (hidSharedMem[42 + 8 + Id*2 + 1])
|
---|
971 | 0x0011a13c <+572>: add r1, r1, #4
|
---|
972 | 0x0011a140 <+576>: ldr r1, [r3, r1]
|
---|
973 |
|
---|
974 | 197 tPos = *(touchPosition*)&hidSharedMem[42 + 8 + Id*2];
|
---|
975 | 0x0011a144 <+580>: ldr r0, [r3, r2, lsl #3]
|
---|
976 |
|
---|
977 | 198 if (hidSharedMem[42 + 8 + Id*2 + 1])
|
---|
978 | 0x0011a148 <+584>: cmp r1, #0
|
---|
979 |
|
---|
980 | 199 kHeld |= KEY_TOUCH;
|
---|
981 | 0x0011a14c <+588>: ldrne r3, [r4]
|
---|
982 |
|
---|
983 | 197 tPos = *(touchPosition*)&hidSharedMem[42 + 8 + Id*2];
|
---|
984 | 0x0011a150 <+592>: str r0, [r12]
|
---|
985 |
|
---|
986 | 199 kHeld |= KEY_TOUCH;
|
---|
987 | 0x0011a154 <+596>: orrne r3, r3, #1048576 ; 0x100000
|
---|
988 | 0x0011a158 <+600>: strne r3, [r4]
|
---|
989 | 0x0011a15c <+604>: b 0x119ff4 <hidScanInput+244>
|
---|
990 |
|
---|
991 | 189 kHeld = hidSharedMem[10 + Id*4];
|
---|
992 | 0x0011a160 <+608>: lsl r1, r1, #4
|
---|
993 | 0x0011a164 <+612>: add r2, r1, #40 ; 0x28
|
---|
994 |
|
---|
995 | 190 cPos = *(circlePosition*)&hidSharedMem[10 + Id*4 + 3];
|
---|
996 | 0x0011a168 <+616>: add r1, r1, #52 ; 0x34
|
---|
997 | 0x0011a16c <+620>: b 0x119fa0 <hidScanInput+160>
|
---|
998 | 0x0011a170 <+624>: adcseq r2, r10, r4, ror #26
|
---|
999 | 0x0011a174 <+628>: adcseq r2, r10, r8, ror #26
|
---|
1000 | 0x0011a178 <+632>: adcseq r2, r10, r12, asr sp
|
---|
1001 | 0x0011a17c <+636>: adcseq r2, r10, r8, lsr #26
|
---|
1002 | 0x0011a180 <+640>: adcseq r2, r10, r4, lsr sp
|
---|
1003 | 0x0011a184 <+644>: adcseq r2, r10, r0, lsr sp
|
---|
1004 | 0x0011a188 <+648>: adcseq r2, r10, r4, ror sp
|
---|
1005 | 0x0011a18c <+652>: adcseq r0, r9, r12
|
---|
1006 | 0x0011a190 <+656>: adcseq r2, r10, r0, ror #26
|
---|
1007 | 0x0011a194 <+660>: adcseq r2, r10, r0, ror sp
|
---|
1008 | 0x0011a198 <+664>: adcseq r0, r9, r8
|
---|
1009 | 0x0011a19c <+668>: adcseq r2, r10, r12, ror #26
|
---|
1010 | 0x0011a1a0 <+672>: adcseq r0, r9, r0, lsl r0
|
---|
1011 | End of assembler dump.
|
---|
1012 |
|
---|
1013 | (gdb) info frame function hidScanInput
|
---|
1014 | Stack frame at 0x81492d0:
|
---|
1015 | pc = 0x119f28 in hidScanInput (/home/atrus/Documents/repos/libctru-2.0.1/libctru/source/services/hid.c:185); saved pc = 0x16914c
|
---|
1016 | called by frame at 0x8149350
|
---|
1017 | source language c.
|
---|
1018 | Arglist at 0x81492b0, args:
|
---|
1019 | Locals at 0x81492b0, Previous frame's sp is 0x81492d0
|
---|
1020 | Saved registers:
|
---|
1021 | r4 at 0x81492b0, r5 at 0x81492b4, r6 at 0x81492b8, r7 at 0x81492bc, r8 at 0x81492c0, r9 at 0x81492c4, r10 at 0x81492c8, lr at 0x81492cc
|
---|
1022 |
|
---|
1023 | (gdb) x/8x $sp
|
---|
1024 | 0x81492b0: 0x0802f098 0x00000000 0x0802fb3c 0xfffffff9
|
---|
1025 | 0x81492c0: 0xfffffff9 0x00000000 0x00000001 0x0016914c
|
---|
1026 | (gdb) disconnect
|
---|
1027 | Ending remote debugging.
|
---|
1028 | (gdb)
|
---|