Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

About Float Point Instructions #59

Closed
pfsun opened this issue Oct 11, 2016 · 5 comments
Closed

About Float Point Instructions #59

pfsun opened this issue Oct 11, 2016 · 5 comments
Milestone

Comments

@pfsun
Copy link

pfsun commented Oct 11, 2016

I just try one float-point computing code. Some float-point instruction are missing.
image

@0ca @illera88 Will you try to add more float point instructions support or other solutions? I also saw some words about float point instructions in Triton website (5.1 - Few words about floating-point instructions) .

@0ca
Copy link
Collaborator

0ca commented Oct 11, 2016

It looks it is a Triton issue, as you can see Triton is not generating symbolic expressions for those instructions.

So we can't check if they are symbolic or not :(

We hope in the future the Triton support for floating instructions will be better.

@pfsun
Copy link
Author

pfsun commented Oct 11, 2016

Yes. It is a Triton issue. It looks they will not support recently :( Thanks.

@pfsun pfsun closed this as completed Oct 11, 2016
@0ca
Copy link
Collaborator

0ca commented Oct 11, 2016

We should show some warnings when Ponce finds unsupported instructions so the user can know without use the "Add comments with symbolic expression" if an instruction is supported.

@JonathanSalwan
Copy link

It looks it is a Triton issue, as you can see Triton is not generating symbolic expressions for those instructions.

Right. Here is our list of supported instructions. The problem with floating point is that SMT solvers cannot deal with expressions which contain both theories bit-vector and floating-point. This behavior is a real problem for us due to the SSA-form. Example:

mov [mem], rax    ; rax comes from bitvector theory
movq xmm1, [mem]  ; generic
addps xmm2, xmm1  ; computation based on floating point theory (where xmm1 comes from bv)

@0ca, regarding #400, I will return a boolean value to let you catch unsupported instructions.

Cheers,

0ca pushed a commit that referenced this issue Oct 14, 2016
@0ca
Copy link
Collaborator

0ca commented Oct 14, 2016

Done, thank you for the help!
eff1ed4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants