Mercurial > pub > dyncall > dyncall
comparison dyncallback/dyncall_thunk_ppc32_sysv.c @ 155:bbefb8b8e74c
- sparc32 thunk code
- replaced some c++ comments with old c ones
- whitespace cosmetics
author | cslag |
---|---|
date | Thu, 24 Nov 2016 23:47:31 +0000 |
parents | d0787f3b81fb |
children | f5577f6bf97a |
comparison
equal
deleted
inserted
replaced
154:3729a99ef03c | 155:bbefb8b8e74c |
---|---|
29 static unsigned short lo16(x) { return ( (unsigned short) ((unsigned int)x) ); } | 29 static unsigned short lo16(x) { return ( (unsigned short) ((unsigned int)x) ); } |
30 | 30 |
31 void dcbInitThunk(DCThunk* p, void (*entry)()) | 31 void dcbInitThunk(DCThunk* p, void (*entry)()) |
32 { | 32 { |
33 /* | 33 /* |
34 0: 3d 60 00 00 lis r11,0 | 34 0: 3d 60 00 00 lis r11,0 |
35 4: 61 6b 00 01 ori r11,r11,1 | 35 4: 61 6b 00 01 ori r11,r11,1 |
36 8: 81 82 00 14 lwz r12,20(r2) | 36 8: 81 82 00 14 lwz r12,20(r2) |
37 c: 7d 89 03 a6 mtctr r12 | 37 c: 7d 89 03 a6 mtctr r12 |
38 10: 4e 80 04 20 bctr | 38 10: 4e 80 04 20 bctr |
39 */ | 39 */ |
40 p->code_load_hi = 0x3d60U; /* lis r11, HI16(p) */ | 40 p->code_load_hi = 0x3d60U; /* lis r11, HI16(p) */ |
41 p->addr_self_hi = hi16(p); | 41 p->addr_self_hi = hi16(p); |
42 p->code_load_lo = 0x616bU; /* ori r11, r11, LO16(p) */ | 42 p->code_load_lo = 0x616bU; /* ori r11, r11, LO16(p) */ |
43 p->addr_self_lo = lo16(p); | 43 p->addr_self_lo = lo16(p); |
44 p->code_jump[0] = 0x818b0014U; /* lwz r12, 20(r11) */ | 44 p->code_jump[0] = 0x818b0014U; /* lwz r12, 20(r11) */ |
45 p->code_jump[1] = 0x7d8903a6U; /* mtclr r12 */ | 45 p->code_jump[1] = 0x7d8903a6U; /* mtclr r12 */ |
46 p->code_jump[2] = 0x4e800420U; /* bctr */ | 46 p->code_jump[2] = 0x4e800420U; /* bctr */ |
47 p->addr_entry = entry; | 47 p->addr_entry = entry; |