equal
deleted
inserted
replaced
33 "Sadly, on Smalltalk/X blocks cannot be inlined because |
33 "Sadly, on Smalltalk/X blocks cannot be inlined because |
34 the VM does not provide enough information to map |
34 the VM does not provide enough information to map |
35 it back to source code. Very bad indeed!!" |
35 it back to source code. Very bad indeed!!" |
36 |
36 |
37 ((Smalltalk respondsTo:#isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[ |
37 ((Smalltalk respondsTo:#isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[ |
38 ^ super asInlined |
38 ^ super asInlined |
39 ] ifFalse:[ |
39 ] ifFalse:[ |
40 ^ PPCInlinePluggableNode new |
40 ^ PPCInlinePluggableNode new |
41 name: name; |
41 name: name; |
42 block: block; |
42 block: block; |
43 yourself |
43 yourself |
44 ] |
44 ] |
45 |
45 |
46 "Modified: / 06-11-2014 / 01:46:08 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
47 ! |
46 ! |
48 |
47 |
49 compileWith: compiler effect: effect id: id |
48 compileWith: compiler effect: effect id: id |
50 | blockId | |
49 | blockId | |
51 blockId := compiler idFor: block prefixed: #block. |
50 blockId := compiler idFor: block prefixed: #block. |
66 |
65 |
67 prefix |
66 prefix |
68 ^ #plug |
67 ^ #plug |
69 ! ! |
68 ! ! |
70 |
69 |
|
70 !PPCPluggableNode methodsFor:'comparing'! |
|
71 |
|
72 = anotherNode |
|
73 super = anotherNode ifFalse: [ ^ false ]. |
|
74 ^ block = anotherNode block. |
|
75 ! |
|
76 |
|
77 hash |
|
78 ^ super hash bitXor: block hash |
|
79 ! ! |
|
80 |