about summary refs log tree commit diff stats
path: root/miasm2/expression (follow)
Commit message (Collapse)AuthorAgeFilesLines
* adding ucomisdGAJaloyan2018-01-121-1/+2
|
* Expression: use stp translatorFabrice Desclaux2018-01-111-68/+0
|
* Remove some unnecessary parentheses when str()'ing expressionsAymeric Vincent2017-12-121-16/+46
| | | | | | | | This patch removes quite a few useless parentheses from expressions thanks to the usual priorities between operators. It is conservative in the sense that not all such parentheses are removed when we felt the priorities won't be known by most users.
* Expression: add expression comparison generatorsFabrice Desclaux2017-09-041-0/+182
|
* Expression/Simplifications: modify x?b:c + dFabrice Desclaux2017-08-101-15/+21
|
* Expression/Simplifications: clean codeFabrice Desclaux2017-08-101-279/+269
|
* Simplifications: ExprMem(a?b:c) and {x?a:b, x?c:d}Fabrice Desclaux2017-08-102-31/+28
|
* ExprReducer: add kwargs arguments for reductionsFabrice Desclaux2017-08-071-13/+14
|
* A defined 'size' is mandatory for `Expr` to workAjax2017-08-031-24/+16
|
* Avoid breaking potential overriding of ExprIntAjax2017-08-031-1/+1
|
* Avoid racing ._size assignment in ExprIntAjax2017-08-031-3/+6
| | | | | | | | | | With Singleton behavior activated, ._size can be set during __new__, and reset to None during __init__. During unpickling, attributes fixes and __init__ / __new__ call order can also result in a weird behavior Actually, as _size is not modified during __new__, ExprInt behavior is now homogeneous with others Expr's __init__
* Remove now useless propertyAjax2017-08-031-8/+0
|
* Expr: move class-dependent attributes to protected oneAjax2017-08-031-187/+187
|
* Avoid potential (but unlikely) hash collisionAjax2017-08-011-2/+2
|
* Expression: add an Expression parserFabrice Desclaux2017-06-141-0/+70
|
* Add a new simplification: {@X[base + i] 0 X, @Y[base + i + X] X (X + Y)} => ↵Ajax2017-06-011-0/+11
| | | | @(X+Y)[base + i]
* Expression: Forbid mix between Expr and int/longFabrice Desclaux2017-05-011-1/+24
| | | | | | | | | A classic error in Miasm is to confuse ExprInt with int, for example: ExprId('a') + 3 We could return ExprOp('+', ExprId('a') + ExprInt(3, 32)), but this may (and often) mask a problem in the source, so we forbid such a construction (and assert this to clarify the error)
* Remove deprecated use of MatchExprAjax2017-04-212-21/+20
|
* Expression: cleanFabrice Desclaux2017-04-211-232/+240
|
* Errata: fix exprmatch namesFabrice Desclaux2017-04-211-50/+50
|
* Expression: remove unused SearchExprFabrice Desclaux2017-04-211-14/+0
|
* Expression: clean MatchExprFabrice Desclaux2017-04-211-51/+45
|
* Expr: fix singleton; add reg testFabrice Desclaux2017-03-311-67/+43
|
* Replace ExprInt[num](x) -> ExprInt(x, num)Ajax2017-03-305-12/+13
|
* Deprecate ExprInt[num] and ExprInt_from(expr, num)Ajax2017-03-301-0/+12
|
* Let ExprInt always use its Singleton capabilitiesAjax2017-03-302-48/+45
| | | | | Remove the optionnal 'size' argument form, use pointer equality to speed up comparision
* ExprReduce: fix exprnode strFabrice Desclaux2017-03-281-11/+11
|
* Right operator of a>> is unsignedAjax2017-02-151-1/+1
|
* Expression: add ExprReduceFabrice Desclaux2017-02-131-0/+177
|
* Expression: REPLACE IS_OP_SEGMFabrice Desclaux2017-02-121-2/+14
| | | | | | | /!\ API MODIFICATION: is_op_segm becomes is_mem_segm is_op_segm: Returns True if is ExprOp and op == 'segm' is_mem_segm: Returns True if is ExprMem and ptr is_op_segm
* Merge pull request #476 from commial/fix/repr-exprserpilliere2017-01-141-1/+2
|\ | | | | Fix/repr expr
| * Fix ExprInt repr to include sizeAjax2017-01-131-1/+2
| |
* | Div: fix modint operationAjax2017-01-131-6/+10
|/
* remove #! command line on files not supposed to be run at top levelAymeric Vincent2017-01-052-2/+0
|
* Expr: Remove exprint_fromFabrice Desclaux2016-12-231-9/+9
|
* Exprsimp: updt apiFabrice Desclaux2016-12-231-87/+65
|
* Expr: add type accessorsFabrice Desclaux2016-12-231-0/+57
|
* Introduce ExprInt of any size (like others Expr)Ajax2016-12-142-12/+25
|
* Expr: Fix expr picklingFabrice Desclaux2016-11-201-3/+6
|
* Expr: missing warning importFabrice Desclaux2016-11-201-0/+1
|
* Add compatibility with copy.deepcopy for ExprAjax2016-11-081-0/+3
|
* Expression: one pass merge_sliceto_sliceAjax2016-11-071-63/+34
|
* ExprCompose: updt internal structFabrice Desclaux2016-11-044-256/+152
|
* ExprCompose: update apiFabrice Desclaux2016-11-043-28/+52
|
* ExprCompose: add new apiFabrice Desclaux2016-11-041-19/+28
| | | | | | | The ExprComposes uses directly its arguments sizes to guess the slices locations. Old api: ExprCompose([(a, 0, 32), (b, 32, 64)]) becomes: ExprCompose(a, b)
* Expression: add picklingFabrice Desclaux2016-11-041-0/+49
|
* IR: is_simp in the simplifier classFabrice Desclaux2016-11-042-16/+6
|
* Expression: slot expressionsFabrice Desclaux2016-11-041-0/+11
|
* Expression: remove is_term attributeserpilliere2016-11-042-140/+118
|
* Expression: Use singleton pattern for Expressionserpilliere2016-11-042-105/+165
| | | | | | | | | Start the transformation of Expression into immutable. Multiple problems were present in Expression class. One of them was comparison done through hash, which could generate collisions. The attributes is_simp/is_canon where linked to the instance, and could not survive to expression simplification.