rizin icon indicating copy to clipboard operation
rizin copied to clipboard

Add Float and Trans theories into RZIL

Open XVilka opened this issue 2 years ago • 1 comments

Currently only supported theories are:

  • Bool
  • Bitvector
  • Mem (Array)
  • Effect

The biggest missing chunk is the Float theory

  • [x] Implement IEE754 types and helper APIs in RzUtil
  • [x] Implement Fbasic operations https://github.com/rizinorg/rizin/pull/3184
  • [x] Cover these by unit tests
  • [ ] Add rounding modes (Rmode) operations
  • [ ] Add Trans (transcendental) operations

See:

  • http://binaryanalysisplatform.github.io/bap/api/odoc/bap-core-theory/Bap_core_theory/Theory/Float/index.html
  • http://binaryanalysisplatform.github.io/bap/api/odoc/bap-core-theory/Bap_core_theory/Theory/Rmode/index.html
  • http://binaryanalysisplatform.github.io/bap/api/odoc/bap-core-theory/Bap_core_theory/Theory/module-type-Fbasic/index.html
  • http://binaryanalysisplatform.github.io/bap/api/odoc/bap-core-theory/Bap_core_theory/Theory/module-type-Float/index.html
  • http://binaryanalysisplatform.github.io/bap/api/odoc/bap-core-theory/Bap_core_theory/Theory/module-type-Trans/index.html
  • http://binaryanalysisplatform.github.io/bap/api/odoc/bap-core-theory/Bap_core_theory/Theory/IEEE754/index.html

Implementation is at https://github.com/BinaryAnalysisPlatform/bap/blob/master/lib/bap_core_theory/bap_core_theory_definition.ml

Note, I think that Trans theory should be separate from the Float in the code.

http://binaryanalysisplatform.github.io/bap/api/odoc/bap-core-theory/Bap_core_theory/Theory/module-type-Core/index.html

XVilka avatar Aug 16 '21 10:08 XVilka

Better description of the rounding modes is here: http://binaryanalysisplatform.github.io/bap/api/master/bap-core-theory/Bap_core_theory/Theory/module-type-Float/index.html#rounding-modes

@brightprogrammer @Heersin @imbillow

XVilka avatar Jun 13 '23 06:06 XVilka