m2isar.backends.etiss.instruction_transform

Recursive tree traversal methods to generate behavior code.

Attributes

logger

Functions

operation(self, context)

Generate an Operation model object. Essentially generate all children,

block(self, context)

return_(self, context)

break_(self, context)

scalar_definition(self, context)

Generate a scalar definition. Calculates the actual required data width and generates

procedure_call(self, context)

Generate a procedure call (Function call without usage of the return value).

function_call(self, context)

Generate a regular function call (with further use of return value).

conditional(self, context)

Generate a conditional ('if' with optional 'else if' and 'else' blocks)

loop(self, context)

Generate 'while' and 'do .. while' loops.

ternary(self, context)

Generate a ternary expression.

assignment(self, context)

Generate an assignment expression

binary_operation(self, context)

Generate a binary expression

unary_operation(self, context)

slice_operation(self, context)

Generate a slice expression

concat_operation(self, context)

Generate a concatenation expression

named_reference(self, context)

Generate a named reference

indexed_reference(self, context)

Generate an indexed reference expression (for register banks or memory).

type_conv(self, context)

Generate a type cast expression

int_literal(self, context)

Generate an integer literal.

number_literal(self, context)

Generate generic number literal. Currently unused.

group(self, context)

Generate a group of expressions.

operator(self, context)

code_literal(self, context)

Module Contents

logger[source]
operation(self: m2isar.metamodel.behav.Operation, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate an Operation model object. Essentially generate all children, concatenate their code, and add exception behavior if needed.

block(self: m2isar.metamodel.behav.Block, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]
return_(self: m2isar.metamodel.behav.Return, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]
break_(self: m2isar.metamodel.behav.Break, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]
scalar_definition(self: m2isar.metamodel.behav.ScalarDefinition, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate a scalar definition. Calculates the actual required data width and generates a variable instantiation.

procedure_call(self: m2isar.metamodel.behav.ProcedureCall, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate a procedure call (Function call without usage of the return value).

function_call(self: m2isar.metamodel.behav.FunctionCall, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate a regular function call (with further use of return value).

conditional(self: m2isar.metamodel.behav.Conditional, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate a conditional (‘if’ with optional ‘else if’ and ‘else’ blocks)

loop(self: m2isar.metamodel.behav.Loop, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate ‘while’ and ‘do .. while’ loops.

ternary(self: m2isar.metamodel.behav.Ternary, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate a ternary expression.

assignment(self: m2isar.metamodel.behav.Assignment, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate an assignment expression

binary_operation(self: m2isar.metamodel.behav.BinaryOperation, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate a binary expression

unary_operation(self: m2isar.metamodel.behav.UnaryOperation, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]
slice_operation(self: m2isar.metamodel.behav.SliceOperation, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate a slice expression

concat_operation(self: m2isar.metamodel.behav.ConcatOperation, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate a concatenation expression

named_reference(self: m2isar.metamodel.behav.NamedReference, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate a named reference

indexed_reference(self: m2isar.metamodel.behav.IndexedReference, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate an indexed reference expression (for register banks or memory).

type_conv(self: m2isar.metamodel.behav.TypeConv, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate a type cast expression

int_literal(self: m2isar.metamodel.behav.IntLiteral, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate an integer literal.

number_literal(self: m2isar.metamodel.behav.NumberLiteral, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate generic number literal. Currently unused.

group(self: m2isar.metamodel.behav.Group, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]

Generate a group of expressions.

operator(self: m2isar.metamodel.behav.Operator, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]
code_literal(self: m2isar.metamodel.behav.CodeLiteral, context: m2isar.backends.etiss.instruction_utils.TransformerContext)[source]