-
Notifications
You must be signed in to change notification settings - Fork 68
/
InstructionClient.extension.st
48 lines (36 loc) · 1.94 KB
/
InstructionClient.extension.st
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Extension { #name : #InstructionClient }
{ #category : #'*BytecodeSets-instruction decoding' }
InstructionClient >> branchIfInstanceOf: literal distance: distance [
"If the object on top of stack has the type -or one of the type- present in the literal (the literal is a behavior or an array of behavior), then pop it. Else jumps by the distance."
]
{ #category : #'*BytecodeSets-instruction decoding' }
InstructionClient >> branchIfNotInstanceOf: literal distance: distance [
"If the object on top of stack has the type -or one of the type- present in the literal (the literal is a behavior or an array of behavior), then pop it. Else jumps by the distance."
]
{ #category : #'*BytecodeSets-instruction decoding' }
InstructionClient >> callInlinePrimitive: pimIndex [
"SistaV1: 248 11111000 iiiiiiii mjjjjjjj Call Primitive #iiiiiiii + ( jjjjjjj * 256)
m=1 means inlined primitive, no hard return after execution."
]
{ #category : #'*BytecodeSets-instruction decoding' }
InstructionClient >> doNop [
"Do nothing"
]
{ #category : #'*BytecodeSets-NewsqueakV3-decoding' }
InstructionClient >> pushExplicitOuter: n [ "<Integer>"
"Push the enclosing object at level n."
]
{ #category : #'*BytecodeSets-instruction decoding' }
InstructionClient >> pushFullClosure: compiledBlockLiteralIndex numCopied: numCopied receiverOnStack: rcvrOnStack ignoreOuterContext: ignoreOuterContext [
"Creates and pushes a FullBlockClosure with variations."
]
{ #category : #'*BytecodeSets-NewsqueakV4-decoding' }
InstructionClient >> sendToAbsentDynamicSuperclass: selector "<Symbol>" numArgs: arity [ "<SmallInteger>"
"Send Message With Selector, selector to the dynamic superclass.
The arguments of the message are found in the top numArgs locations
on the stack and the receiver is implicitly the receiver of the current method activation."
]
{ #category : #'*BytecodeSets-instruction decoding' }
InstructionClient >> trap [
"triggers a specific call-back in the runtime"
]