Forum: Compiler & IDEs rlwinm Knoten im Kopf


von Flip B. (frickelfreak)


Lesenswert?

Ich versuche gerade hier durchzusteigen, aber so wie der Disassembler 
das präsentiert, müsste doch alles nach links rausgeshiftet werden 
(<<32). oder ist das lediglich eine komische schreibweise was Ghidra da 
raushaut? welche bits werden maskiert? Mir raucht der Kopf!
1
ulonglong can_check_permission_FUN_000b90a8(void)
2
3
{
4
  return ((ulonglong)can_chk_perm_DAT_40000cbd << 32) >> 35;
5
}

Assembler:
1
**************************************************************
2
*                          FUNCTION                          *
3
**************************************************************
4
             undefined can_check_permission_FUN_000b90a8()
5
                               assume r13 = 0x40008004
6
             undefined         <UNASSIGNED>   <RETURN>
7
             undefined4        Stack[0x4]:4   local_res4              
8
             undefined4        Stack[-0x10]:4 local_10
9
                             can_check_permission_FUN_000b90a8                
10
        000b90a8 94 21 ff f0     stwu       r1,DAT_fffffff0(r1) 
11
        000b90ac 7c 08 02 a6     mfspr      r0,LR
12
        000b90b0 90 01 00 14     stw        r0,local_res4(r1)
13
        000b90b4 3d 80 40 00     lis        r12,0x4000
14
        000b90b8 88 6c 0c bd     lbz        r3,offset can_chk_perm_DAT_40000cbd(r12)
15
        000b90bc 54 63 ee fe     rlwinm     r3,r3,0x1d,0x1b,0x1f
16
        000b90c0 80 01 00 14     lwz        r0,local_res4(r1)
17
        000b90c4 7c 08 03 a6     mtspr      LR,r0
18
        000b90c8 38 21 00 10     addi       r1,r1,0x10
19
        000b90cc 4e 80 00 20     blr

ISA-Manual_
https://www.nxp.com/docs/en/user-guide/BOOK_EUM.pdf
https://math-atlas.sourceforge.net/devel/assembly/ppc_isa.pdf

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.