Add vector instructions.

Use derived type variables with the 'LaneOf' function.

Add u8 immediates to be used for lane indexes and bit shifts.
This commit is contained in:
Jakob Stoklund Olesen
2016-05-20 15:36:03 -07:00
parent b44d6c6541
commit b1dd4ad373
8 changed files with 73 additions and 38 deletions

View File

@@ -8,7 +8,7 @@ in this module.
from . import InstructionFormat, value, variable_args
from immediates import imm64, ieee32, ieee64, immvector
from immediates import imm64, uimm8, ieee32, ieee64, immvector
from entities import ebb, function, jump_table
Nullary = InstructionFormat()
@@ -30,6 +30,9 @@ BinaryOverflow = InstructionFormat(value, value, multiple_results=True)
# The first value operand is the controlling flag whisch has a derived type.
Select = InstructionFormat(value, value, value, typevar_operand=1)
InsertLane = InstructionFormat(value, uimm8, value)
ExtractLane = InstructionFormat(value, uimm8)
Jump = InstructionFormat(ebb, variable_args, boxed_storage=True)
Branch = InstructionFormat(value, ebb, variable_args, boxed_storage=True)
BranchTable = InstructionFormat(value, jump_table)