Skip to content

Commit

Permalink
Missing bytecode 240
Browse files Browse the repository at this point in the history
  • Loading branch information
guillep committed Apr 10, 2024
1 parent 9fbd0b4 commit 333b613
Showing 1 changed file with 73 additions and 140 deletions.
213 changes: 73 additions & 140 deletions smalltalksrc/VMMaker/DruidJIT.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -450,7 +450,8 @@ DruidJIT class >> bytecodeTable [
#isMapped. #v4:Long:Branch:Distance: }.
{ 2. 239. 239. #gen_ExtJumpIfFalse. #branch. #isBranchFalse.
#isMapped. #v4:Long:Branch:Distance: }.
{ 2. 240. 240. #unknownBytecode }.
{ 2. 240. 240. #gen_ExtStoreAndPopReceiverVariableBytecode.
#isInstVarRef. #isMappedIfImmutability }.
{ 2. 241. 241. #gen_ExtStoreAndPopLiteralVariableBytecode.
#isMappedIfImmutability }.
{ 2. 242. 242. #gen_LongStoreAndPopTemporaryVariableBytecode }.
Expand Down Expand Up @@ -2966,7 +2967,7 @@ DruidJIT >> gen_ExtStoreAndPopLiteralVariableBytecode [
DruidJIT >> gen_ExtStoreAndPopReceiverVariableBytecode [
"AutoGenerated by Druid"

| s6 jump5 s46 s4 s38 jump3 s9 s2 t1 currentBlock jump1 jump8 jumpNext jump6 s73 s17 live s5 s78 s87 jump4 jumpTrue jump9 s3 t2 jump2 s43 s13 jump7 s35 s83 s48 t0 |
| s6 jump5 s33 s46 s4 jump3 s44 s14 s69 s2 t1 s36 currentBlock s9 jump1 jump6 s65 s5 live jump4 s63 s3 t2 jump2 jump7 t0 s41 |
live := 0.
self annotateBytecode: self Label.
s3 := byte1.
Expand All @@ -2985,24 +2986,17 @@ DruidJIT >> gen_ExtStoreAndPopReceiverVariableBytecode [
live := live bitOr: (self registerMaskFor: t1).
self MoveR: ReceiverResultReg R: t1.
s9 := ReceiverIndex.
self ssFlushStack.
t2 := self
allocateRegNotConflictingWith: live
ifNone: [ ^ self unknownBytecode ].
live := live bitOr: (self registerMaskFor: t2).
s6 <= s9 ifTrue: [
| jump1 jumpNext jump9 jump6 jump3 jump8 jump5 jumpTrue jump2 jump7 jump4 |
| jump7 jump5 jump3 jump1 jump8 jump6 jump4 jump2 |
self MoveM64: 0 r: t1 R: t2.
self AndCq: 16r3FFFFF R: t2.
s13 := ClassMethodContextCompactIndex.
self CmpCq: s13 R: t2.
jumpTrue := self JumpZero: 0.
self MoveCq: 0 R: t2.
jumpNext := self Jump: 0.
jumpTrue jmpTarget: self Label.
self MoveCq: 1 R: t2.
jumpNext jmpTarget: self Label.
self ssFlushStack.
self CmpCq: 1 R: t2.
s14 := ClassMethodContextCompactIndex.
self CmpCq: s14 R: t2.
jump1 := self JumpNonZero: 0.
self deoptimize.
jump2 := self Jump: 0.
Expand All @@ -3024,33 +3018,25 @@ DruidJIT >> gen_ExtStoreAndPopReceiverVariableBytecode [
self AndCq: 7 R: t2.
self CmpCq: 0 R: t2.
jump1 := self JumpNonZero: 0.
s35 := objectMemory getMemoryMap getSpaceMaskToUse.
s33 := objectMemory getMemoryMap getSpaceMaskToUse.
self MoveR: t1 R: t2.
self AndCq: s35 R: t2.
s38 := objectMemory getMemoryMap getOldSpaceMask.
self CmpCq: s38 R: t2.
self AndCq: s33 R: t2.
s36 := objectMemory getMemoryMap getOldSpaceMask.
self CmpCq: s36 R: t2.
jump4 := self JumpNonZero: 0.
self MoveR: t0 R: t2.
self AndCq: 7 R: t2.
self CmpCq: 0 R: t2.
jump5 := self JumpNonZero: 0.
s43 := objectMemory getMemoryMap getSpaceMaskToUse.
s41 := objectMemory getMemoryMap getSpaceMaskToUse.
self MoveR: t0 R: t2.
self AndCq: s43 R: t2.
s46 := objectMemory getMemoryMap getNewSpaceMask.
self CmpCq: s46 R: t2.
self AndCq: s41 R: t2.
s44 := objectMemory getMemoryMap getNewSpaceMask.
self CmpCq: s44 R: t2.
jump6 := self JumpNonZero: 0.
s48 := objectMemory getMemoryMap getNewSpaceStart.
self MoveR: t0 R: t2.
self CmpCq: s48 R: t2.
jumpTrue := self JumpAboveOrEqual: 0.
self MoveCq: 0 R: t2.
jumpNext := self Jump: 0.
jumpTrue jmpTarget: self Label.
self MoveCq: 1 R: t2.
jumpNext jmpTarget: self Label.
self CmpCq: 1 R: t2.
jump7 := self JumpNonZero: 0.
s46 := objectMemory getMemoryMap getNewSpaceStart.
self CmpCq: s46 R: t0.
jump7 := self JumpBelow: 0.
self MoveM64: 0 r: t1 R: t2.
self LogicalShiftRightCq: 29 R: t2.
self AndCq: 1 R: t2.
Expand All @@ -3059,192 +3045,139 @@ DruidJIT >> gen_ExtStoreAndPopReceiverVariableBytecode [
self MoveR: t1 R: TempReg.
backEnd saveAndRestoreLinkRegAround: [
self CallRT: ceStoreCheckTrampoline ].
jump9 := self Jump: 0.
currentBlock := self Label.
jump6 jmpTarget: currentBlock.
currentBlock := self Label.
jump7 jmpTarget: currentBlock.
currentBlock := self Label.
jump1 jmpTarget: currentBlock.
jump4 jmpTarget: currentBlock.
jump5 jmpTarget: currentBlock.
jump6 jmpTarget: currentBlock.
jump7 jmpTarget: currentBlock.
jump8 jmpTarget: currentBlock.
jump9 jmpTarget: currentBlock.
self MoveM64: 0 r: t1 R: t2.
self LogicalShiftRightCq: 29 R: t2.
self AndCq: 1 R: t2.
self CmpCq: 0 R: t2.
jump9 := self JumpNonZero: 0.
self TstCq: 7 R: t0.
jump8 := self JumpNonZero: 0.
self TstCq: 7 R: t0.
jump7 := self JumpNonZero: 0.
self CmpCq: 16r20000000000 R: t1.
jump5 := self JumpLess: 0.
jump6 := self JumpLess: 0.
self CmpCq: 16r20000000000 R: t0.
jump4 := self JumpGreaterOrEqual: 0.
jump5 := self JumpGreaterOrEqual: 0.
self genMoveConstant: objectMemory nilObject R: t2.
self CmpR: t2 R: t0.
jump1 := self JumpBelow: 0.
s73 := objectMemory trueObject.
self MoveR: t0 R: t2.
self CmpCq: s73 R: t2.
jumpTrue := self JumpBelowOrEqual: 0.
self MoveCq: 0 R: t2.
jumpNext := self Jump: 0.
jumpTrue jmpTarget: self Label.
self MoveCq: 1 R: t2.
jumpNext jmpTarget: self Label.
jump7 := self Jump: 0.
currentBlock := self Label.
jump1 jmpTarget: currentBlock.
s78 := 0.
self MoveCq: s78 R: t2.
jump4 := self JumpBelow: 0.
s63 := objectMemory trueObject.
self CmpCq: s63 R: t0.
jump1 := self JumpBelowOrEqual: 0.
currentBlock := self Label.
jump7 jmpTarget: currentBlock.
self CmpCq: 1 R: t2.
jump7 := self JumpZero: 0.
s83 := objectMemory getMemoryMap getNewSpaceStart.
self CmpCq: s83 R: t0.
jump1 := self JumpBelow: 0.
jump4 jmpTarget: currentBlock.
s65 := objectMemory getMemoryMap getNewSpaceStart.
self CmpCq: s65 R: t0.
jump4 := self JumpBelow: 0.
self MoveR: t1 R: TempReg.
backEnd saveAndRestoreLinkRegAround: [
self CallRT: ceStoreCheckTrampoline ].
currentBlock := self Label.
jump9 jmpTarget: currentBlock.
jump8 jmpTarget: currentBlock.
jump5 jmpTarget: currentBlock.
jump4 jmpTarget: currentBlock.
jump7 jmpTarget: currentBlock.
jump6 jmpTarget: currentBlock.
jump5 jmpTarget: currentBlock.
jump1 jmpTarget: currentBlock.
s87 := s6 << 3.
self AddCq: s87 R: t1.
jump4 jmpTarget: currentBlock.
s69 := s6 << 3.
self AddCq: s69 R: t1.
self MoveR: t0 M64: 8 r: t1.
currentBlock := self Label.
jump2 jmpTarget: currentBlock.
jump3 jmpTarget: currentBlock.
extA := 0.
^ 0 ].
s17 := 0.
self MoveCq: s17 R: t2.
self ssFlushStack.
self CmpCq: 1 R: t2.
jump3 := self JumpNonZero: 0.
self deoptimize.
jump2 := self Jump: 0.
deadCode := false.
currentBlock := self Label.
jump3 jmpTarget: currentBlock.
self ssPop: 1.
self MoveM64: 0 r: t1 R: t2.
self LogicalShiftRightCq: 23 R: t2.
self AndCq: 1 R: t2.
self CmpCq: 0 R: t2.
jump3 := self JumpZero: 0.
self deoptimize.
jump1 := self Jump: 0.
jump2 := self Jump: 0.
deadCode := false.
currentBlock := self Label.
jump3 jmpTarget: currentBlock.
self MoveR: t1 R: t2.
self AndCq: 7 R: t2.
self CmpCq: 0 R: t2.
jump3 := self JumpNonZero: 0.
s35 := objectMemory getMemoryMap getSpaceMaskToUse.
s33 := objectMemory getMemoryMap getSpaceMaskToUse.
self MoveR: t1 R: t2.
self AndCq: s35 R: t2.
s38 := objectMemory getMemoryMap getOldSpaceMask.
self CmpCq: s38 R: t2.
jump7 := self JumpNonZero: 0.
self AndCq: s33 R: t2.
s36 := objectMemory getMemoryMap getOldSpaceMask.
self CmpCq: s36 R: t2.
jump4 := self JumpNonZero: 0.
self MoveR: t0 R: t2.
self AndCq: 7 R: t2.
self CmpCq: 0 R: t2.
jump4 := self JumpNonZero: 0.
s43 := objectMemory getMemoryMap getSpaceMaskToUse.
jump1 := self JumpNonZero: 0.
s41 := objectMemory getMemoryMap getSpaceMaskToUse.
self MoveR: t0 R: t2.
self AndCq: s43 R: t2.
s46 := objectMemory getMemoryMap getNewSpaceMask.
self CmpCq: s46 R: t2.
self AndCq: s41 R: t2.
s44 := objectMemory getMemoryMap getNewSpaceMask.
self CmpCq: s44 R: t2.
jump5 := self JumpNonZero: 0.
s48 := objectMemory getMemoryMap getNewSpaceStart.
self MoveR: t0 R: t2.
self CmpCq: s48 R: t2.
jumpTrue := self JumpAboveOrEqual: 0.
self MoveCq: 0 R: t2.
jumpNext := self Jump: 0.
jumpTrue jmpTarget: self Label.
self MoveCq: 1 R: t2.
jumpNext jmpTarget: self Label.
self CmpCq: 1 R: t2.
jump8 := self JumpNonZero: 0.
s46 := objectMemory getMemoryMap getNewSpaceStart.
self CmpCq: s46 R: t0.
jump6 := self JumpBelow: 0.
self MoveM64: 0 r: t1 R: t2.
self LogicalShiftRightCq: 29 R: t2.
self AndCq: 1 R: t2.
self CmpCq: 0 R: t2.
jump9 := self JumpNonZero: 0.
jump7 := self JumpNonZero: 0.
self MoveR: t1 R: TempReg.
backEnd saveAndRestoreLinkRegAround: [
self CallRT: ceStoreCheckTrampoline ].
jump6 := self Jump: 0.
currentBlock := self Label.
jump5 jmpTarget: currentBlock.
currentBlock := self Label.
jump8 jmpTarget: currentBlock.
currentBlock := self Label.
jump3 jmpTarget: currentBlock.
jump7 jmpTarget: currentBlock.
jump4 jmpTarget: currentBlock.
jump9 jmpTarget: currentBlock.
jump1 jmpTarget: currentBlock.
jump5 jmpTarget: currentBlock.
jump6 jmpTarget: currentBlock.
jump7 jmpTarget: currentBlock.
self MoveM64: 0 r: t1 R: t2.
self LogicalShiftRightCq: 29 R: t2.
self AndCq: 1 R: t2.
self CmpCq: 0 R: t2.
jump6 := self JumpNonZero: 0.
jump7 := self JumpNonZero: 0.
self TstCq: 7 R: t0.
jump9 := self JumpNonZero: 0.
jump6 := self JumpNonZero: 0.
self CmpCq: 16r20000000000 R: t1.
jump4 := self JumpLess: 0.
jump5 := self JumpLess: 0.
self CmpCq: 16r20000000000 R: t0.
jump7 := self JumpGreaterOrEqual: 0.
jump1 := self JumpGreaterOrEqual: 0.
self genMoveConstant: objectMemory nilObject R: t2.
self CmpR: t2 R: t0.
jump3 := self JumpBelow: 0.
s73 := objectMemory trueObject.
self MoveR: t0 R: t2.
self CmpCq: s73 R: t2.
jumpTrue := self JumpBelowOrEqual: 0.
self MoveCq: 0 R: t2.
jumpNext := self Jump: 0.
jumpTrue jmpTarget: self Label.
self MoveCq: 1 R: t2.
jumpNext jmpTarget: self Label.
jump8 := self Jump: 0.
currentBlock := self Label.
jump3 jmpTarget: currentBlock.
s78 := 0.
self MoveCq: s78 R: t2.
jump4 := self JumpBelow: 0.
s63 := objectMemory trueObject.
self CmpCq: s63 R: t0.
jump3 := self JumpBelowOrEqual: 0.
currentBlock := self Label.
jump8 jmpTarget: currentBlock.
self CmpCq: 1 R: t2.
jump8 := self JumpZero: 0.
s83 := objectMemory getMemoryMap getNewSpaceStart.
self CmpCq: s83 R: t0.
jump3 := self JumpBelow: 0.
jump4 jmpTarget: currentBlock.
s65 := objectMemory getMemoryMap getNewSpaceStart.
self CmpCq: s65 R: t0.
jump4 := self JumpBelow: 0.
self MoveR: t1 R: TempReg.
backEnd saveAndRestoreLinkRegAround: [
self CallRT: ceStoreCheckTrampoline ].
currentBlock := self Label.
jump6 jmpTarget: currentBlock.
jump9 jmpTarget: currentBlock.
jump4 jmpTarget: currentBlock.
jump7 jmpTarget: currentBlock.
jump8 jmpTarget: currentBlock.
jump6 jmpTarget: currentBlock.
jump5 jmpTarget: currentBlock.
jump1 jmpTarget: currentBlock.
jump3 jmpTarget: currentBlock.
s87 := s6 << 3.
self AddCq: s87 R: t1.
jump4 jmpTarget: currentBlock.
s69 := s6 << 3.
self AddCq: s69 R: t1.
self MoveR: t0 M64: 8 r: t1.
currentBlock := self Label.
jump2 jmpTarget: currentBlock.
jump1 jmpTarget: currentBlock.
extA := 0.
^ 0
]
Expand Down

0 comments on commit 333b613

Please sign in to comment.