Fixed AsmJit tests.
--- a/asm/AJBaseReg.st Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/AJBaseReg.st Wed Dec 16 00:03:56 2015 +0000
@@ -5,7 +5,7 @@
AJOperand subclass:#AJBaseReg
instanceVariableNames:'size code name'
classVariableNames:''
- poolDictionaries:''
+ poolDictionaries:'AJConstants'
category:'AsmJit-Operands'
!
@@ -117,6 +117,8 @@
Of the general-purpose registers, this is true only of SPL, BPL, SIL, DIL."
^ (code & RegProhibitsRexMask) ~~ 0
+
+ "Modified (format): / 15-12-2015 / 23:30:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
requiresRex
--- a/asm/AJCallInfo.st Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/AJCallInfo.st Wed Dec 16 00:03:56 2015 +0000
@@ -13,6 +13,14 @@
AJCallInfo comment:''
!
+!AJCallInfo class methodsFor:'instance creation'!
+
+new
+ "return an initialized instance"
+
+ ^ self basicNew initialize.
+! !
+
!AJCallInfo methodsFor:'accessing'!
alignment: aStackAlignment
--- a/asm/AJGeneratedCode.st Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/AJGeneratedCode.st Wed Dec 16 00:03:56 2015 +0000
@@ -16,6 +16,12 @@
fromInstructions: instructions
^ self new fromInstructions: instructions
+!
+
+new
+ "return an initialized instance"
+
+ ^ self basicNew initialize.
! !
!AJGeneratedCode methodsFor:'accessing'!
--- a/asm/AJImmediate.st Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/AJImmediate.st Wed Dec 16 00:03:56 2015 +0000
@@ -12,6 +12,14 @@
AJImmediate comment:'I am an immediate (constant integer) operand used by the assembler.
Example:
"create an immediate from an integer"
1 asImm.
"implicitely use an immediate in an assembly instrution"
asm := AJx64Assembler new.
asm add: 1 to: asm RAX.
'
!
+!AJImmediate class methodsFor:'instance creation'!
+
+new
+ "return an initialized instance"
+
+ ^ self basicNew initialize.
+! !
+
!AJImmediate class methodsFor:'as yet unclassified'!
ivalue: aValue
--- a/asm/AJInstruction.st Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/AJInstruction.st Wed Dec 16 00:03:56 2015 +0000
@@ -12,6 +12,14 @@
AJInstruction comment:''
!
+!AJInstruction class methodsFor:'instance creation'!
+
+new
+ "return an initialized instance"
+
+ ^ self basicNew initialize.
+! !
+
!AJInstruction methodsFor:'accessing'!
annotation
--- a/asm/AJMem.st Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/AJMem.st Wed Dec 16 00:03:56 2015 +0000
@@ -5,13 +5,21 @@
AJOperand subclass:#AJMem
instanceVariableNames:'size base index shift segmentPrefix hasLabel target displacement'
classVariableNames:''
- poolDictionaries:''
+ poolDictionaries:'AJConstants'
category:'AsmJit-Operands'
!
AJMem comment:'I am memory operand used in assembly instructions. I can be created from an immedate or a register.
Memory operands are used to read values indirectly from memory using certain offsets.
Example:
asm := AJx86Assembler new.
"create an memory operand on the address 1234"
1234 asImm ptr
"create a simple memory operand with RAX as base"
asm RAX ptr.
"the same with a 8 byte offset"
asm RAX ptr + 8'
!
+!AJMem class methodsFor:'instance creation'!
+
+new
+ "return an initialized instance"
+
+ ^ self basicNew initialize.
+! !
+
!AJMem methodsFor:'accessing'!
* aScale
--- a/asm/AJRegister.st Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/AJRegister.st Wed Dec 16 00:03:56 2015 +0000
@@ -5,7 +5,7 @@
AJBaseReg subclass:#AJRegister
instanceVariableNames:''
classVariableNames:''
- poolDictionaries:''
+ poolDictionaries:'AJConstants'
category:'AsmJit-Operands'
!
@@ -17,6 +17,8 @@
code: aCode
code := aCode.
size := 1 << (( code bitAnd: RegTypeMask ) >> 4).
+
+ "Modified (format): / 15-12-2015 / 23:24:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
influencingRegisters
@@ -27,6 +29,8 @@
size
^ 1 << (( code bitAnd: RegTypeMask ) >> 4).
+
+ "Modified (format): / 15-12-2015 / 23:28:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!AJRegister methodsFor:'testing'!
--- a/asm/AJRoutineStackManager.st Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/AJRoutineStackManager.st Wed Dec 16 00:03:56 2015 +0000
@@ -13,6 +13,14 @@
AJRoutineStackManager comment:''
!
+!AJRoutineStackManager class methodsFor:'instance creation'!
+
+new
+ "return an initialized instance"
+
+ ^ self basicNew initialize.
+! !
+
!AJRoutineStackManager methodsFor:'as yet unclassified'!
analyzeInstructions: anInstructions assembler: asm
--- a/asm/AJStackAlignmentTests.st Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/AJStackAlignmentTests.st Wed Dec 16 00:03:56 2015 +0000
@@ -56,9 +56,9 @@
asm generatedCode. "to analyze instructions"
self assert: callInfo stackSize = 12.
- self assert: callInfo needsAlignment
+ self assert: callInfo needsAlignment
-
+ "Modified (format): / 15-12-2015 / 23:20:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!AJStackAlignmentTests methodsFor:'utility'!
--- a/asm/AJx64Assembler.st Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/AJx64Assembler.st Wed Dec 16 00:03:56 2015 +0000
@@ -5,7 +5,7 @@
AJx86Assembler subclass:#AJx64Assembler
instanceVariableNames:''
classVariableNames:''
- poolDictionaries:''
+ poolDictionaries:'AJx86Registers'
category:'AsmJit-x86'
!
--- a/asm/AJx64AssemblerTests.st Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/AJx64AssemblerTests.st Wed Dec 16 00:03:56 2015 +0000
@@ -9,8 +9,6 @@
category:'AsmJit-Tests'
!
-AJx64AssemblerTests comment:''
-!
!AJx64AssemblerTests class methodsFor:'as yet unclassified'!
@@ -174,8 +172,10 @@
testAssemblyImmAddr
"This is not supported in 64-bit mode -- the ModRM value for this results in RIP-relative addressing."
- <expectedFailure>
+ self skipIf: true description: 'This is not supported in 64-bit mode -- the ModRM value for this results in RIP-relative addressing.'.
super testAssemblyImmAddr
+
+ "Modified: / 21-12-2015 / 09:47:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
testAssemblyMemBase
@@ -846,3 +846,10 @@
yourself
! !
+!AJx64AssemblerTests class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+
Binary file asm/AJx86Assembler.st has changed
--- a/asm/AJx86AssemblerTests.st Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/AJx86AssemblerTests.st Wed Dec 16 00:03:56 2015 +0000
@@ -301,31 +301,6 @@
16r0F 16rB6 16rC4 ]
!
-testRegistersOf: asm
-
- | numRegs |
- numRegs := asm numGPRegisters.
-
- 0 to: numRegs-1 do: [:i |
- self assert: (asm reg8: i) size = 1.
- self assert: (asm reg8: i) index = i.
-
- self assert: (asm reg16: i) size = 2.
- self assert: (asm reg16: i) index = i.
-
- self assert: (asm reg32: i) size = 4.
- self assert: (asm reg32: i) index = i.
-
- self assert: (asm isGPNRegister: (asm nReg: i)).
-
- asm is64BitMode ifTrue: [
- self assert: (asm reg64: i) size = 8.
- self assert: (asm reg64: i) index = i.
- ]
- ].
-
-!
-
testSyscall
"Syscall instruction is only valid in 64-bit mode"
@@ -355,6 +330,32 @@
+!
+
+tstRegistersOf: asm
+
+ | numRegs |
+ numRegs := asm numGPRegisters.
+
+ 0 to: numRegs-1 do: [:i |
+ self assert: (asm reg8: i) size = 1.
+ self assert: (asm reg8: i) index = i.
+
+ self assert: (asm reg16: i) size = 2.
+ self assert: (asm reg16: i) index = i.
+
+ self assert: (asm reg32: i) size = 4.
+ self assert: (asm reg32: i) index = i.
+
+ self assert: (asm isGPNRegister: (asm nReg: i)).
+
+ asm is64BitMode ifTrue: [
+ self assert: (asm reg64: i) size = 8.
+ self assert: (asm reg64: i) index = i.
+ ]
+ ].
+
+ "Created: / 15-12-2015 / 23:59:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!AJx86AssemblerTests methodsFor:'tests-FPU'!
--- a/asm/AJx87Register.st Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/AJx87Register.st Wed Dec 16 00:03:56 2015 +0000
@@ -5,7 +5,7 @@
AJBaseReg subclass:#AJx87Register
instanceVariableNames:''
classVariableNames:''
- poolDictionaries:''
+ poolDictionaries:'AJConstants'
category:'AsmJit-x86-Operands'
!
@@ -18,6 +18,8 @@
code := aCode bitOr: RegX87.
size := 10.
+
+ "Modified (format): / 15-12-2015 / 23:34:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
influencingRegisters
--- a/asm/Make.proto Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/Make.proto Wed Dec 16 00:03:56 2015 +0000
@@ -144,25 +144,25 @@
$(OUTDIR)AJStdCallCallInfo.$(O) AJStdCallCallInfo.$(H): AJStdCallCallInfo.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJCallInfo.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)AJx86Instruction.$(O) AJx86Instruction.$(H): AJx86Instruction.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJInstruction.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)AJx86Registers.$(O) AJx86Registers.$(H): AJx86Registers.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJConstants.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
-$(OUTDIR)AJBaseReg.$(O) AJBaseReg.$(H): AJBaseReg.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJOperand.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)AJBaseReg.$(O) AJBaseReg.$(H): AJBaseReg.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJConstants.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJOperand.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)AJCallArgument.$(O) AJCallArgument.$(H): AJCallArgument.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJInstruction.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJStackInstruction.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)AJCallCleanup.$(O) AJCallCleanup.$(H): AJCallCleanup.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJInstruction.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJStackInstruction.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)AJImmediate.$(O) AJImmediate.$(H): AJImmediate.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJOperand.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)AJMem.$(O) AJMem.$(H): AJMem.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJOperand.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)AJMem.$(O) AJMem.$(H): AJMem.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJConstants.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJOperand.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)AJx64Instruction.$(O) AJx64Instruction.$(H): AJx64Instruction.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJInstruction.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJx86Instruction.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)AJx86Assembler.$(O) AJx86Assembler.$(H): AJx86Assembler.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJAssembler.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJConstants.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJx86Registers.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)AJx86InstructionDescription.$(O) AJx86InstructionDescription.$(H): AJx86InstructionDescription.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJConstants.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJx86Registers.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)AJx86JumpInstruction.$(O) AJx86JumpInstruction.$(H): AJx86JumpInstruction.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJInstruction.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJJumpInstruction.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)AJMMRegister.$(O) AJMMRegister.$(H): AJMMRegister.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJBaseReg.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJOperand.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)AJRegister.$(O) AJRegister.$(H): AJRegister.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJBaseReg.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJOperand.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)AJx64Assembler.$(O) AJx64Assembler.$(H): AJx64Assembler.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJAssembler.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJx86Assembler.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)AJRegister.$(O) AJRegister.$(H): AJRegister.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJBaseReg.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJConstants.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJOperand.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)AJx64Assembler.$(O) AJx64Assembler.$(H): AJx64Assembler.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJAssembler.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJx86Assembler.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJx86Registers.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)AJx64InstructionDescription.$(O) AJx64InstructionDescription.$(H): AJx64InstructionDescription.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJx86InstructionDescription.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)AJx64JumpInstruction.$(O) AJx64JumpInstruction.$(H): AJx64JumpInstruction.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJInstruction.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJJumpInstruction.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJx86JumpInstruction.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)AJx87Register.$(O) AJx87Register.$(H): AJx87Register.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJBaseReg.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJOperand.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)AJx87Register.$(O) AJx87Register.$(H): AJx87Register.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJBaseReg.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJConstants.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJOperand.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)AJxMMRegister.$(O) AJxMMRegister.$(H): AJxMMRegister.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJBaseReg.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJOperand.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)AJx86GPRegister.$(O) AJx86GPRegister.$(H): AJx86GPRegister.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJBaseReg.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJOperand.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJRegister.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJx86Registers.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)AJx64RipRegister.$(O) AJx64RipRegister.$(H): AJx64RipRegister.st $(INCLUDE_TOP)/jv/dragonfly/asm/AJBaseReg.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJOperand.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJRegister.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJx86GPRegister.$(H) $(INCLUDE_TOP)/jv/dragonfly/asm/AJx86Registers.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Integer.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/PeekableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/PositionableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/Stream.$(H) $(INCLUDE_TOP)/stx/libbasic/WriteStream.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Boolean.$(H) $(INCLUDE_TOP)/stx/libbasic/False.$(H) $(INCLUDE_TOP)/stx/libbasic/Integer.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/PeekableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/PositionableStream.$(H) $(INCLUDE_TOP)/stx/libbasic/Stream.$(H) $(INCLUDE_TOP)/stx/libbasic/True.$(H) $(INCLUDE_TOP)/stx/libbasic/WriteStream.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/asm/bc.mak Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/bc.mak Wed Dec 16 00:03:56 2015 +0000
@@ -91,25 +91,25 @@
$(OUTDIR)AJStdCallCallInfo.$(O) AJStdCallCallInfo.$(H): AJStdCallCallInfo.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJCallInfo.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx86Instruction.$(O) AJx86Instruction.$(H): AJx86Instruction.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx86Registers.$(O) AJx86Registers.$(H): AJx86Registers.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
-$(OUTDIR)AJBaseReg.$(O) AJBaseReg.$(H): AJBaseReg.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)AJBaseReg.$(O) AJBaseReg.$(H): AJBaseReg.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJCallArgument.$(O) AJCallArgument.$(H): AJCallArgument.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJStackInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJCallCleanup.$(O) AJCallCleanup.$(H): AJCallCleanup.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJStackInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJImmediate.$(O) AJImmediate.$(H): AJImmediate.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)AJMem.$(O) AJMem.$(H): AJMem.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)AJMem.$(O) AJMem.$(H): AJMem.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx64Instruction.$(O) AJx64Instruction.$(H): AJx64Instruction.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86Instruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx86Assembler.$(O) AJx86Assembler.$(H): AJx86Assembler.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJAssembler.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86Registers.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx86InstructionDescription.$(O) AJx86InstructionDescription.$(H): AJx86InstructionDescription.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86Registers.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx86JumpInstruction.$(O) AJx86JumpInstruction.$(H): AJx86JumpInstruction.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJJumpInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJMMRegister.$(O) AJMMRegister.$(H): AJMMRegister.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJBaseReg.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)AJRegister.$(O) AJRegister.$(H): AJRegister.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJBaseReg.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)AJx64Assembler.$(O) AJx64Assembler.$(H): AJx64Assembler.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJAssembler.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86Assembler.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)AJRegister.$(O) AJRegister.$(H): AJRegister.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJBaseReg.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)AJx64Assembler.$(O) AJx64Assembler.$(H): AJx64Assembler.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJAssembler.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86Assembler.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86Registers.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx64InstructionDescription.$(O) AJx64InstructionDescription.$(H): AJx64InstructionDescription.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86InstructionDescription.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx64JumpInstruction.$(O) AJx64JumpInstruction.$(H): AJx64JumpInstruction.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJInstruction.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJJumpInstruction.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86JumpInstruction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)AJx87Register.$(O) AJx87Register.$(H): AJx87Register.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJBaseReg.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)AJx87Register.$(O) AJx87Register.$(H): AJx87Register.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJBaseReg.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJConstants.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJxMMRegister.$(O) AJxMMRegister.$(H): AJxMMRegister.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJBaseReg.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx86GPRegister.$(O) AJx86GPRegister.$(H): AJx86GPRegister.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJBaseReg.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJRegister.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86Registers.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)AJx64RipRegister.$(O) AJx64RipRegister.$(H): AJx64RipRegister.st $(INCLUDE_TOP)\jv\dragonfly\asm\AJBaseReg.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJOperand.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJRegister.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86GPRegister.$(H) $(INCLUDE_TOP)\jv\dragonfly\asm\AJx86Registers.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\ArithmeticValue.$(H) $(INCLUDE_TOP)\stx\libbasic\Integer.$(H) $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\Number.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\PeekableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\PositionableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\Stream.$(H) $(INCLUDE_TOP)\stx\libbasic\WriteStream.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\ArithmeticValue.$(H) $(INCLUDE_TOP)\stx\libbasic\Boolean.$(H) $(INCLUDE_TOP)\stx\libbasic\False.$(H) $(INCLUDE_TOP)\stx\libbasic\Integer.$(H) $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\Number.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\PeekableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\PositionableStream.$(H) $(INCLUDE_TOP)\stx\libbasic\Stream.$(H) $(INCLUDE_TOP)\stx\libbasic\True.$(H) $(INCLUDE_TOP)\stx\libbasic\WriteStream.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/asm/extensions.st Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/extensions.st Wed Dec 16 00:03:56 2015 +0000
@@ -1,5 +1,21 @@
"{ Package: 'jv:dragonfly/asm' }"!
+!Boolean methodsFor:'Compatibility-Squeak'!
+
+asBit
+ ^ self subclassResponsibility
+
+ "Created: / 15-12-2015 / 23:41:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!False methodsFor:'Compatibility-Squeak'!
+
+asBit
+ ^ 0
+
+ "Created: / 15-12-2015 / 23:41:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!Integer methodsFor:'*AsmJit-Extension'!
asAJOperand
@@ -136,6 +152,14 @@
aStream print: self.
! !
+!True methodsFor:'Compatibility-Squeak'!
+
+asBit
+ ^ 1
+
+ "Created: / 15-12-2015 / 23:42:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!WriteStream methodsFor:'*AsmJit-Extension'!
asLineStream
--- a/asm/jv_dragonfly_asm.st Tue Dec 15 23:18:02 2015 +0000
+++ b/asm/jv_dragonfly_asm.st Wed Dec 16 00:03:56 2015 +0000
@@ -140,9 +140,64 @@
Integer isByte
Integer printAsOperandOn:
WriteStream asLineStream
+ Boolean asBit
+ False asBit
+ True asBit
)
! !
+!jv_dragonfly_asm class methodsFor:'description - mc'!
+
+monticelloLastMergedVersions
+"
+Name: AsmJit-Core-MartinMcClure.3
+Author: MartinMcClure
+Time: 27-01-2013, 04:50:49.940 PM
+UUID: 9982488c-43fc-4dda-9213-a95df64e8ed2
+Ancestors: AsmJit-Core-CamilloBruni.2
+
+Name: AsmJit-Operands-CamilloBruni.11
+Author: CamilloBruni
+Time: 07-05-2013, 02:22:03.301 PM
+UUID: 95f351e3-2240-4800-93a2-5bb6cc56b1d7
+Ancestors: AsmJit-Operands-MartinMcClure.10
+
+Name: AsmJit-Instructions-MartinMcClure.6
+Author: MartinMcClure
+Time: 09-02-2013, 02:51:45.480 PM
+UUID: 4e4714c8-5b1f-4152-81e0-134a4be40f50
+Ancestors: AsmJit-Instructions-MartinMcClure.5
+
+Name: AsmJit-StackManagement-IgorStasenko.6
+Author: IgorStasenko
+Time: 13-08-2013, 01:53:04.489 PM
+UUID: 72e67d90-f55f-4a34-a7b7-fb2b4c8169d2
+Ancestors: AsmJit-StackManagement-IgorStasenko.5
+
+Name: AsmJit-Extension-MartinMcClure.6
+Author: MartinMcClure
+Time: 20-01-2013, 08:12:25.519 PM
+UUID: 56883179-b4b2-4bd4-8455-d0b8c79822ec
+Ancestors: AsmJit-Extension-IgorStasenko.4
+
+Name: AsmJit-x86-IgorStasenko.26
+Author: IgorStasenko
+Time: 13-08-2013, 01:52:03.480 PM
+UUID: 67677e97-32c1-482f-8498-ec6d1e197e60
+Ancestors: AsmJit-x86-IgorStasenko.25
+
+Name: AsmJit-Tests-MartinMcClure.13
+Author: MartinMcClure
+Time: 30-01-2013, 10:05:01.183 PM
+UUID: 28a52f9e-6d3c-4e76-8fca-373630481248
+Ancestors: AsmJit-Tests-MartinMcClure.12
+
+
+"
+
+ "Created: / 16-12-2015 / 00:05:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!jv_dragonfly_asm class methodsFor:'description - project information'!
companyName