@@ -298,14 +298,14 @@ def get_register_info(self):
298
298
self .register_info ['registers' ] = [
299
299
{'name' : 'rax' , 'bitsize' : 64 , 'offset' : 0 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 0 , 'dwarf' : 0 },
300
300
{'name' : 'rbx' , 'bitsize' : 64 , 'offset' : 8 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 3 , 'dwarf' : 3 },
301
- {'name' : 'rcx' , 'bitsize' : 64 , 'offset' : 16 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 2 , 'dwarf' : 2 , 'generic' : 'arg4' , 'alt-name' : 'arg4' , },
302
- {'name' : 'rdx' , 'bitsize' : 64 , 'offset' : 24 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 1 , 'dwarf' : 1 , 'generic' : 'arg3' , 'alt-name' : 'arg3' , },
303
- {'name' : 'rdi' , 'bitsize' : 64 , 'offset' : 32 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 5 , 'dwarf' : 5 , 'generic' : 'arg1' , 'alt-name' : 'arg1' , },
304
- {'name' : 'rsi' , 'bitsize' : 64 , 'offset' : 40 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 4 , 'dwarf' : 4 , 'generic' : 'arg2' , 'alt-name' : 'arg2' , },
305
- {'name' : 'rbp' , 'bitsize' : 64 , 'offset' : 48 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 6 , 'dwarf' : 6 , 'generic' : 'fp' , 'alt-name' : 'fp' , },
306
- {'name' : 'rsp' , 'bitsize' : 64 , 'offset' : 56 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 7 , 'dwarf' : 7 , 'generic' : 'sp' , 'alt-name' : 'sp' , },
307
- {'name' : 'r8' , 'bitsize' : 64 , 'offset' : 64 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 8 , 'dwarf' : 8 , 'generic' : 'arg5' , 'alt-name' : 'arg5' , },
308
- {'name' : 'r9' , 'bitsize' : 64 , 'offset' : 72 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 9 , 'dwarf' : 9 , 'generic' : 'arg6' , 'alt-name' : 'arg6' , },
301
+ {'name' : 'rcx' , 'bitsize' : 64 , 'offset' : 16 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 2 , 'dwarf' : 2 , 'generic' : 'arg4' , 'alt-name' : 'arg4' },
302
+ {'name' : 'rdx' , 'bitsize' : 64 , 'offset' : 24 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 1 , 'dwarf' : 1 , 'generic' : 'arg3' , 'alt-name' : 'arg3' },
303
+ {'name' : 'rdi' , 'bitsize' : 64 , 'offset' : 32 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 5 , 'dwarf' : 5 , 'generic' : 'arg1' , 'alt-name' : 'arg1' },
304
+ {'name' : 'rsi' , 'bitsize' : 64 , 'offset' : 40 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 4 , 'dwarf' : 4 , 'generic' : 'arg2' , 'alt-name' : 'arg2' },
305
+ {'name' : 'rbp' , 'bitsize' : 64 , 'offset' : 48 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 6 , 'dwarf' : 6 , 'generic' : 'fp' , 'alt-name' : 'fp' },
306
+ {'name' : 'rsp' , 'bitsize' : 64 , 'offset' : 56 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 7 , 'dwarf' : 7 , 'generic' : 'sp' , 'alt-name' : 'sp' },
307
+ {'name' : 'r8' , 'bitsize' : 64 , 'offset' : 64 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 8 , 'dwarf' : 8 , 'generic' : 'arg5' , 'alt-name' : 'arg5' },
308
+ {'name' : 'r9' , 'bitsize' : 64 , 'offset' : 72 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 9 , 'dwarf' : 9 , 'generic' : 'arg6' , 'alt-name' : 'arg6' },
309
309
{'name' : 'r10' , 'bitsize' : 64 , 'offset' : 80 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 10 , 'dwarf' : 10 },
310
310
{'name' : 'r11' , 'bitsize' : 64 , 'offset' : 88 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 11 , 'dwarf' : 11 },
311
311
{'name' : 'r12' , 'bitsize' : 64 , 'offset' : 96 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 12 , 'dwarf' : 12 },
@@ -316,8 +316,47 @@ def get_register_info(self):
316
316
{'name' : 'rflags' , 'bitsize' : 64 , 'offset' : 136 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'generic' : 'flags' , 'alt-name' : 'flags' },
317
317
{'name' : 'cs' , 'bitsize' : 64 , 'offset' : 144 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 },
318
318
{'name' : 'fs' , 'bitsize' : 64 , 'offset' : 152 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 },
319
- {'name' : 'gs' , 'bitsize' : 64 , 'offset' : 160 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 },
319
+ {'name' : 'gs' , 'bitsize' : 64 , 'offset' : 160 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 }
320
320
]
321
+ elif 'arm64' in arch :
322
+ self .register_info ['sets' ] = ['General Purpose Registers' ]
323
+ self .register_info ['registers' ] = [
324
+ {'name' : 'x0' , 'bitsize' : 64 , 'offset' : 0 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 0 , 'dwarf' : 0 , 'generic' : 'arg0' , 'alt-name' : 'arg0' },
325
+ {'name' : 'x1' , 'bitsize' : 64 , 'offset' : 8 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 1 , 'dwarf' : 1 , 'generic' : 'arg1' , 'alt-name' : 'arg1' },
326
+ {'name' : 'x2' , 'bitsize' : 64 , 'offset' : 16 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 2 , 'dwarf' : 2 , 'generic' : 'arg2' , 'alt-name' : 'arg2' },
327
+ {'name' : 'x3' , 'bitsize' : 64 , 'offset' : 24 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 3 , 'dwarf' : 3 , 'generic' : 'arg3' , 'alt-name' : 'arg3' },
328
+ {'name' : 'x4' , 'bitsize' : 64 , 'offset' : 32 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 4 , 'dwarf' : 4 , 'generic' : 'arg4' , 'alt-name' : 'arg4' },
329
+ {'name' : 'x5' , 'bitsize' : 64 , 'offset' : 40 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 5 , 'dwarf' : 5 , 'generic' : 'arg5' , 'alt-name' : 'arg5' },
330
+ {'name' : 'x6' , 'bitsize' : 64 , 'offset' : 48 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 6 , 'dwarf' : 6 , 'generic' : 'arg6' , 'alt-name' : 'arg6' },
331
+ {'name' : 'x7' , 'bitsize' : 64 , 'offset' : 56 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 7 , 'dwarf' : 7 , 'generic' : 'arg7' , 'alt-name' : 'arg7' },
332
+ {'name' : 'x8' , 'bitsize' : 64 , 'offset' : 64 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 8 , 'dwarf' : 8 },
333
+ {'name' : 'x9' , 'bitsize' : 64 , 'offset' : 72 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 9 , 'dwarf' : 9 },
334
+ {'name' : 'x10' , 'bitsize' : 64 , 'offset' : 80 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 10 , 'dwarf' : 10 },
335
+ {'name' : 'x11' , 'bitsize' : 64 , 'offset' : 88 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 11 , 'dwarf' : 11 },
336
+ {'name' : 'x12' , 'bitsize' : 64 , 'offset' : 96 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 12 , 'dwarf' : 12 },
337
+ {'name' : 'x13' , 'bitsize' : 64 , 'offset' : 104 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 13 , 'dwarf' : 13 },
338
+ {'name' : 'x14' , 'bitsize' : 64 , 'offset' : 112 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 14 , 'dwarf' : 14 },
339
+ {'name' : 'x15' , 'bitsize' : 64 , 'offset' : 120 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 15 , 'dwarf' : 15 },
340
+ {'name' : 'x16' , 'bitsize' : 64 , 'offset' : 128 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 16 , 'dwarf' : 16 },
341
+ {'name' : 'x17' , 'bitsize' : 64 , 'offset' : 136 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 17 , 'dwarf' : 17 },
342
+ {'name' : 'x18' , 'bitsize' : 64 , 'offset' : 144 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 18 , 'dwarf' : 18 },
343
+ {'name' : 'x19' , 'bitsize' : 64 , 'offset' : 152 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 19 , 'dwarf' : 19 },
344
+ {'name' : 'x20' , 'bitsize' : 64 , 'offset' : 160 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 20 , 'dwarf' : 20 },
345
+ {'name' : 'x21' , 'bitsize' : 64 , 'offset' : 168 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 21 , 'dwarf' : 21 },
346
+ {'name' : 'x22' , 'bitsize' : 64 , 'offset' : 176 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 22 , 'dwarf' : 22 },
347
+ {'name' : 'x23' , 'bitsize' : 64 , 'offset' : 184 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 23 , 'dwarf' : 23 },
348
+ {'name' : 'x24' , 'bitsize' : 64 , 'offset' : 192 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 24 , 'dwarf' : 24 },
349
+ {'name' : 'x25' , 'bitsize' : 64 , 'offset' : 200 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 25 , 'dwarf' : 25 },
350
+ {'name' : 'x26' , 'bitsize' : 64 , 'offset' : 208 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 26 , 'dwarf' : 26 },
351
+ {'name' : 'x27' , 'bitsize' : 64 , 'offset' : 216 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 27 , 'dwarf' : 27 },
352
+ {'name' : 'x28' , 'bitsize' : 64 , 'offset' : 224 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 28 , 'dwarf' : 28 },
353
+ {'name' : 'x29' , 'bitsize' : 64 , 'offset' : 232 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 29 , 'dwarf' : 29 , 'generic' : 'fp' , 'alt-name' : 'fp' },
354
+ {'name' : 'x30' , 'bitsize' : 64 , 'offset' : 240 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 30 , 'dwarf' : 30 , 'generic' : 'lr' , 'alt-name' : 'lr' },
355
+ {'name' : 'sp' , 'bitsize' : 64 , 'offset' : 248 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 31 , 'dwarf' : 31 , 'generic' : 'sp' , 'alt-name' : 'sp' },
356
+ {'name' : 'pc' , 'bitsize' : 64 , 'offset' : 256 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 32 , 'dwarf' : 32 , 'generic' : 'pc' , 'alt-name' : 'pc' },
357
+ {'name' : 'cpsr' , 'bitsize' : 32 , 'offset' : 264 , 'encoding' : 'uint' , 'format' : 'hex' , 'set' : 0 , 'gcc' : 33 , 'dwarf' : 33 }
358
+ ]
359
+ else : raise ValueError ('Unknown architecture' , arch )
321
360
return self .register_info
322
361
323
362
@abstractmethod
0 commit comments