asm/AJx64Instruction.st
changeset 3 483729eb4432
child 17 54798ae989cc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/asm/AJx64Instruction.st	Tue Dec 15 23:18:02 2015 +0000
@@ -0,0 +1,41 @@
+"{ Package: 'jv:dragonfly/asm' }"
+
+"{ NameSpace: Smalltalk }"
+
+AJx86Instruction subclass:#AJx64Instruction
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'AsmJit-x86-Instructions'
+!
+
+AJx64Instruction comment:''
+!
+
+!AJx64Instruction methodsFor:'accessing'!
+
+instructionDesciptions
+    ^ AJx64InstructionDescription instructions
+! !
+
+!AJx64Instruction methodsFor:'testing'!
+
+is32BitMode
+    ^ false
+!
+
+is64BitMode
+    ^ true
+!
+
+requiresRex
+    "Answer true if I absolutely must have a REX prefix."
+
+    ^ (operands
+        detect: [ :rawOp | 
+            | op |
+            op := rawOp asAJOperand.
+            op requiresRex | op is64 ]
+        ifNone: [ #none ]) ~~ #none
+! !
+