about summary refs log tree commit diff stats
path: root/miasm2/expression/expression.py (follow)
Commit message (Collapse)AuthorAgeFilesLines
* adding ucomisdGAJaloyan2018-01-121-1/+2
|
* 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
|
* 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: 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-211-10/+10
|
* 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-301-2/+3
|
* Deprecate ExprInt[num] and ExprInt_from(expr, num)Ajax2017-03-301-0/+12
|
* Let ExprInt always use its Singleton capabilitiesAjax2017-03-301-46/+42
| | | | | Remove the optionnal 'size' argument form, use pointer equality to speed up comparision
* 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
* Fix ExprInt repr to include sizeAjax2017-01-131-1/+2
|
* Expr: add type accessorsFabrice Desclaux2016-12-231-0/+57
|
* Introduce ExprInt of any size (like others Expr)Ajax2016-12-141-0/+2
|
* 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
|
* ExprCompose: updt internal structFabrice Desclaux2016-11-041-71/+21
|
* ExprCompose: update apiFabrice Desclaux2016-11-041-7/+13
|
* 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-041-10/+0
|
* Expression: slot expressionsFabrice Desclaux2016-11-041-0/+11
|
* Expression: remove is_term attributeserpilliere2016-11-041-132/+116
|
* Expression: Use singleton pattern for Expressionserpilliere2016-11-041-104/+164
| | | | | | | | | 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.
* Expression/IR: Fix mem_read parameter in 'get_r'Caroline Leman2016-10-061-1/+1
|
* ExprInt: add shortcut for int, longAjax2016-09-161-0/+6
|
* Add ** (pow) operatorJB Cayrou2016-06-291-0/+3
|
* Merge pull request #330 from serpilliere/assignblockCamille Mougey2016-02-261-3/+0
|\ | | | | Assignblock
| * AssignBlockFabrice Desclaux2016-02-261-3/+0
| |
* | Handle ExprAff in MatchExprCamille Mougey2016-02-251-0/+11
|/
* Tipo: dictionaryFabrice Desclaux2016-01-301-4/+4
|
* Expression: slotsFabrice Desclaux2016-01-151-17/+45
|
* Expression: repr cpuid opFabrice Desclaux2015-11-221-0/+1
|
* Merge pull request #250 from serpilliere/ExprInt_apiFlorent2015-10-291-19/+19
|\ | | | | Expression: normalize ExprInt api
| * Expression: fix apiFabrice Desclaux2015-10-291-10/+4
| |
| * Expression: normalize ExprInt apiFabrice Desclaux2015-10-291-9/+15
| |
* | Expression: autopep8serpilliere2015-10-281-4/+2
| |
* | Expression: enhance exprop reprserpilliere2015-10-281-2/+4
|/
* Expression/expression: fix op len sanitycheckserpilliere2015-10-231-4/+12
|
* Expression: move is_func_call to expr scrFabrice Desclaux2015-09-231-3/+3
|