This is what Shark makes of java.lang.Thread.Thread(ThreadGroup group, String name)
on 32-bit ppc:
0xd04c2010: mflr r0 0xd04c2014: stw r0,4(r1) 0xd04c2018: stwu r1,-48(r1) 0xd04c201c: stw r24,44(r1) 0xd04c2020: stw r25,40(r1) 0xd04c2024: stw r26,36(r1) 0xd04c2028: stw r27,32(r1) 0xd04c202c: stw r28,28(r1) 0xd04c2030: stw r29,24(r1) 0xd04c2034: stw r30,20(r1) |
abi frame setup
|
0xd04c2038: lwz r5,712(r4) 0xd04c203c: lwz r6,704(r4) 0xd04c2040: addi r30,r5,-36 0xd04c2044: cmplw r30,r6 0xd04c2048: mr r29,r4 0xd04c204c: addi r28,r4,712 0xd04c2050: addi r27,r4,716 0xd04c2054: blt- 0xd04c23a4 0xd04c2058: stw r30,0(r28) 0xd04c205c: stw r3,24(r30) 0xd04c2060: li r4,3 0xd04c2064: stw r4,28(r30) 0xd04c2068: lwz r4,0(r27) 0xd04c206c: addi r5,r30,32 0xd04c2070: stw r4,32(r30) 0xd04c2074: stw r5,0(r27) |
zero frame setup
|
0xd04c2078: lwz r4,44(r30) |
0: aload_0
|
0xd04c207c: addi r26,r30,20 |
|
0xd04c2080: stw r4,20(r30) |
|
0xd04c2084: cmplwi r4,0 0xd04c2088: addi r25,r30,24 0xd04c208c: beq- 0xd04c23b4 0xd04c2090: lwz r3,12(r3) 0xd04c2094: lwz r3,16(r3) 0xd04c2098: lwz r4,640(r3) 0xd04c209c: addi r24,r3,640 0xd04c20a0: rlwinm r3,r4,16,24,31 0xd04c20a4: cmplwi r3,183 0xd04c20a8: beq- 0xd04c20bc 0xd04c20ac: lis r3,3999 0xd04c20b0: li r4,438 0xd04c20b4: ori r3,r3,58324 0xd04c20b8: bl 0xd04c1fd8 0xd04c20bc: lwz r3,4(r24) 0xd04c20c0: lwz r24,0(r28) 0xd04c20c4: lwz r5,80(r3) 0xd04c20c8: stw r26,0(r28) 0xd04c20cc: mr r4,r29 0xd04c20d0: mtctr r5 0xd04c20d4: bctrl 0xd04c20d8: lwz r26,0(r25) 0xd04c20dc: lwz r3,0(r28) 0xd04c20e0: stw r24,0(r28) 0xd04c20e4: lwz r4,4(r29) 0xd04c20e8: cmplwi r4,0 0xd04c20ec: bne- 0xd04c23c4 |
1: invokespecial <Method java.lang.Object.<init> ()void>
|
0xd04c20f0: lwz r4,44(r30) |
4: aload_0
|
0xd04c20f4: li r5,0 |
|
0xd04c20f8: stw r4,-4(r3) |
|
0xd04c20fc: stw r5,-8(r3) |
5: iconst_0
|
0xd04c2100: lwz r4,-4(r3) 0xd04c2104: cmplwi r4,0 0xd04c2108: beq- 0xd04c23b4 0xd04c210c: stw r5,49(r4) |
6: putfield <Field java.lang.Thread.daemon boolean>
|
0xd04c2110: lwz r4,44(r30) |
9: aload_0
|
0xd04c2114: li r5,0 |
|
0xd04c2118: stw r4,-4(r3) |
|
0xd04c211c: stw r5,-8(r3) |
10: iconst_0
|
0xd04c2120: lwz r4,-4(r3) 0xd04c2124: cmplwi r4,0 0xd04c2128: beq- 0xd04c23b4 0xd04c212c: stw r5,50(r4) |
11: putfield <Field java.lang.Thread.stillborn boolean>
|
0xd04c2130: lwz r4,44(r30) |
14: aload_0
|
0xd04c2134: li r5,0 |
|
0xd04c2138: stw r4,-4(r3) |
|
0xd04c213c: stw r5,-8(r3) |
15: aconst_null
|
0xd04c2140: lwz r4,-4(r3) 0xd04c2144: cmplwi r4,0 0xd04c2148: beq- 0xd04c23b4 0xd04c214c: lis r6,-11934 0xd04c2150: addi r7,r4,76 0xd04c2154: stw r5,76(r4) 0xd04c2158: li r4,0 0xd04c215c: ori r5,r6,384 0xd04c2160: rlwinm r6,r7,23,9,31 0xd04c2164: stbx r4,r6,r5 |
16: putfield <Field java.lang.Thread.threadLocals java.lang.ThreadLocal$ThreadLocalMap>
|
0xd04c2168: lwz r5,44(r30) 0xd04c216c: stw r5,-4(r3) |
19: aload_0
|
0xd04c2170: stw r4,-8(r3) 0xd04c2174: nop |
20: aconst_null
|
0xd04c2178: lwz r5,-4(r3) 0xd04c217c: cmplwi r5,0 0xd04c2180: beq- 0xd04c23b4 0xd04c2184: lis r6,-11934 0xd04c2188: addi r7,r5,80 0xd04c218c: stw r4,80(r5) 0xd04c2190: li r4,0 0xd04c2194: ori r5,r6,384 0xd04c2198: rlwinm r6,r7,23,9,31 0xd04c219c: stbx r4,r6,r5 |
21: putfield <Field java.lang.Thread.inheritableThreadLocals java.lang.ThreadLocal$ThreadLocalMap>
|
0xd04c21a0: lwz r5,44(r30) 0xd04c21a4: stw r5,-4(r3) |
24: aload_0
|
0xd04c21a8: stw r4,-8(r3) 0xd04c21ac: nop |
25: iconst_0
|
0xd04c21b0: lwz r5,-4(r3) 0xd04c21b4: cmplwi r5,0 0xd04c21b8: beq- 0xd04c23b4 0xd04c21bc: stw r4,44(r5) |
26: putfield <Field java.lang.Thread.threadStatus int>
|
0xd04c21c0: lwz r4,44(r30) |
29: aload_0
|
0xd04c21c4: addi r24,r3,-4 |
|
0xd04c21c8: stw r4,-4(r3) |
|
0xd04c21cc: lwz r3,68(r29) 0xd04c21d0: lwz r4,76(r29) 0xd04c21d4: addi r5,r3,8 0xd04c21d8: cmplw r5,r4 0xd04c21dc: addi r4,r29,68 0xd04c21e0: ble- 0xd04c23d4 0xd04c21e4: lis r3,3999 0xd04c21e8: li r4,392 0xd04c21ec: ori r3,r3,60456 0xd04c21f0: bl 0xd04c1fd8 0xd04c21f4: lwz r3,148(r29) 0xd04c21f8: cmplwi r3,0 0xd04c21fc: bne- 0xd04c23d8 0xd04c2200: lis r3,3999 0xd04c2204: li r4,469 0xd04c2208: ori r3,r3,60456 0xd04c220c: bl 0xd04c1fd8 0xd04c2210: lwz r3,8(r29) 0xd04c2214: stw r3,-4(r24) |
30: new <Class java.lang.Object> (part 1 of 2)
|
0xd04c2218: stw r3,-8(r24) |
33: dup
|
0xd04c221c: cmplwi r3,0 0xd04c2220: addi r24,r24,-8 0xd04c2224: beq- 0xd04c23b4 0xd04c2228: lwz r3,12(r26) 0xd04c222c: lwz r3,16(r3) 0xd04c2230: lwz r4,640(r3) 0xd04c2234: addi r26,r3,640 0xd04c2238: rlwinm r3,r4,16,24,31 0xd04c223c: cmplwi r3,183 0xd04c2240: beq- 0xd04c2254 0xd04c2244: lis r3,3999 0xd04c2248: li r4,438 0xd04c224c: ori r3,r3,58324 0xd04c2250: bl 0xd04c1fd8 0xd04c2254: lwz r3,4(r26) 0xd04c2258: lwz r26,0(r28) 0xd04c225c: lwz r5,80(r3) 0xd04c2260: stw r24,0(r28) 0xd04c2264: mr r4,r29 0xd04c2268: mtctr r5 0xd04c226c: bctrl 0xd04c2270: lwz r3,0(r25) 0xd04c2274: lwz r4,0(r28) 0xd04c2278: stw r26,0(r28) 0xd04c227c: lwz r5,4(r29) 0xd04c2280: cmplwi r5,0 0xd04c2284: bne- 0xd04c23c4 |
34: invokespecial <Method java.lang.Object.<init> ()void>
|
0xd04c2288: lwz r5,4(r4) 0xd04c228c: lwz r6,0(r4) 0xd04c2290: cmplwi r5,0 |
37: putfield <Field java.lang.Thread.blockerLock java.lang.Object>
|
0xd04c2294: addi r4,r4,8 |
|
0xd04c2298: beq- 0xd04c23b4 0xd04c229c: lis r7,-11934 0xd04c22a0: addi r8,r5,92 0xd04c22a4: stw r6,92(r5) 0xd04c22a8: li r5,0 0xd04c22ac: ori r6,r7,384 0xd04c22b0: rlwinm r7,r8,23,9,31 0xd04c22b4: stbx r5,r7,r6 |
|
0xd04c22b8: lwz r6,44(r30) 0xd04c22bc: addi r26,r4,-24 0xd04c22c0: stw r6,-4(r4) |
40: aload_0
|
0xd04c22c4: lwz r6,40(r30) 0xd04c22c8: stw r6,-8(r4) |
41: aload_1
|
0xd04c22cc: stw r5,-12(r4) |
42: aconst_null
|
0xd04c22d0: lwz r6,36(r30) 0xd04c22d4: stw r6,-16(r4) |
43: aload_2
|
0xd04c22d8: stw r5,-24(r4) 0xd04c22dc: stw r5,-20(r4) |
44: lconst_0
|
0xd04c22e0: lwz r4,-4(r4) 0xd04c22e4: cmplwi r4,0 0xd04c22e8: beq- 0xd04c23b4 0xd04c22ec: lwz r3,12(r3) 0xd04c22f0: lwz r3,16(r3) 0xd04c22f4: lwz r4,768(r3) 0xd04c22f8: addi r30,r3,768 0xd04c22fc: rlwinm r3,r4,16,24,31 0xd04c2300: cmplwi r3,183 0xd04c2304: beq- 0xd04c2318 0xd04c2308: lis r3,3999 0xd04c230c: li r4,438 0xd04c2310: ori r3,r3,58324 0xd04c2314: bl 0xd04c1fd8 0xd04c2318: lwz r3,4(r30) 0xd04c231c: lwz r30,0(r28) 0xd04c2320: lwz r5,80(r3) 0xd04c2324: stw r26,0(r28) 0xd04c2328: mr r4,r29 0xd04c232c: mtctr r5 0xd04c2330: bctrl 0xd04c2334: stw r30,0(r28) 0xd04c2338: lwz r3,4(r29) 0xd04c233c: cmplwi r3,0 0xd04c2340: bne- 0xd04c23c4 |
45: invokespecial <Method java.lang.Thread.init (java.lang.ThreadGroup,java.lang.Runnable,java.lang.String,long)void>
|
0xd04c2344: lis r3,4031 0xd04c2348: lwz r3,-8400(r3) 0xd04c234c: cmplwi r3,1 0xd04c2350: bne- 0xd04c2364 0xd04c2354: lis r3,3999 0xd04c2358: li r4,465 0xd04c235c: ori r3,r3,58324 0xd04c2360: bl 0xd04c1fd8 |
48: return
|
0xd04c2364: lwz r3,0(r27) 0xd04c2368: addi r4,r3,16 0xd04c236c: stw r4,0(r28) 0xd04c2370: lwz r3,0(r3) 0xd04c2374: stw r3,0(r27) |
zero frame teardown |
0xd04c2378: lwz r30,20(r1) 0xd04c237c: lwz r29,24(r1) 0xd04c2380: lwz r28,28(r1) 0xd04c2384: lwz r27,32(r1) 0xd04c2388: lwz r26,36(r1) 0xd04c238c: lwz r25,40(r1) 0xd04c2390: lwz r24,44(r1) 0xd04c2394: addi r1,r1,48 0xd04c2398: lwz r0,4(r1) 0xd04c239c: mtlr r0 0xd04c23a0: blr |
abi frame teardown |
0xd04c23a4: lis r28,3999 0xd04c23a8: li r4,272 0xd04c23ac: ori r3,r28,58324 0xd04c23b0: bl 0xd04c1fd8 |
stack overflow handler |
0xd04c23b4: lis r28,3999 0xd04c23b8: li r4,281 0xd04c23bc: ori r3,r28,58324 0xd04c23c0: bl 0xd04c1fd8 |
null pointer handler |
0xd04c23c4: lis r28,3999 0xd04c23c8: li r4,289 0xd04c23cc: ori r3,r28,58324 0xd04c23d0: bl 0xd04c1fd8 |
exception handler |
0xd04c23d4: stw r5,0(r4) 0xd04c23d8: li r4,0 0xd04c23dc: stw r4,0(r3) 0xd04c23e0: stw r4,4(r3) 0xd04c23e4: li r4,1 0xd04c23e8: stw r4,0(r3) 0xd04c23ec: lwz r4,12(r26) 0xd04c23f0: lwz r4,40(r4) 0xd04c23f4: stw r4,4(r3) 0xd04c23f8: b 0xd04c2214 |
30: new <Class java.lang.Object> (part 2 of 2)
|