LibASL.EvalSourceASL evaluator
It is an error to have multiple function definitions with conflicting types. * But, for historical reasons, we still allow multiple definitions and later * definitions override earlier definitions.
Basically just a mutable binding
Evaluate bitslice of instruction opcode
Evaluate instruction decode pattern match
Evaluate list of expressions
Create uninitialized value at given type
todo: bitvectors are currently set to UNKNOWN because the bitvector representation currently in use cannot track uninitialized bits
Evaluate UNKNOWN at given type
Evaluate pattern match
Evaluate bitslice bounds
Evaluate expression
Evaluate L-expression in write-mode (i.e., this is not a read-modify-write)
Evaluate L-expression in read-modify-write mode.
1. The old value of the L-expression is read. 2. The function 'modify' is applied to the old value 3. The result is written back to the L-expression.
Evaluate list of statements
Evaluate statement
Evaluate call to function or procedure
val eval_funcall :
AST.l ->
Env.t ->
AST.ident ->
Value.value list ->
Value.value list ->
Value.valueEvaluate call to function
val eval_proccall :
AST.l ->
Env.t ->
AST.ident ->
Value.value list ->
Value.value list ->
unitEvaluate call to procedure
Evaluate instruction decode case
val eval_decode_alt :
AST.l ->
Env.t ->
AST.decode_alt ->
Value.value list ->
Value.value ->
boolEvaluate instruction decode case alternative
Evaluate instruction encoding
Construct environment from global declarations