-
Notifications
You must be signed in to change notification settings - Fork 18k
runtime: softfloat emulation doesn't support conditional execution #3638
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
Labels
Comments
0x159fb010 is "ldrne fp, [pc, #16]" unfortunately the softfloat emulator doesn't handle conditional execution of instructions. The surrounding instructions are: 6d010: 159fb010 ldrne fp, [pc, #16] ; 6d028 <_ul2d+0x70> 6d014: 1d9b2a00 vldrne s4, [fp] 6d018: 1e311a02 vaddne.f32 s2, s2, s4 6d01c: eeb00b41 vmov.f64 d0, d1 6d020: e28ef000 add pc, lr, #0 Three of them are all conditional, so we must support conditional execution in stepflt(), this will take some time, for I must verify that all the instruction executed by it supports conditional execution (although I think so). A temp. workaround is to disable optimizer in 5c again in softfloat builds. (add "debug['N'] = 1;" to main() in cc/lex.c:L96 after "memset(debug, 0, sizeof(debug));".) I will tackle the general problem. Should we setup a soft float ARMv5 builder to avoid introduce these kind of bugs latter? (I have a custom built qemu-system-arm without VFP support, but it took 2 hours to run make.bash and 'go test -short std') Labels changed: added priority-later, removed priority-triage. |
http://golang.org/cl/6213057 Status changed to Started. |
This issue was closed by revision fb3a1b6. Status changed to Fixed. |
minux
added a commit
that referenced
this issue
May 11, 2015
…ftfloat ««« backport 87ef5e0baaf5 runtime: support conditional execution in ARM softfloat Fixes #3638. R=golang-dev, dave, rsc CC=golang-dev https://golang.org/cl/6213057 »»»
This issue was closed.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
The text was updated successfully, but these errors were encountered: