lundi 24 octobre 2016

release build variable corruption when using ne10 math library assembly function

has anyone experience the following issue?

A stack variable getting changed/corrupted after calling ne10 assembly function such as ne10_len_vec2f_neon?
e.g
float gain = 8.0;
ne10_len_vec2f_neon(src, dst, len);

after the call to ne10_len_vec2f_neon, the value of gain changes as its memory is getting corrupted.

1.  Note this only happens when the project is compiled in release build but not debug build.
2.  Does Ne10 assembly functions preserve registers?
3.  Replacing the assembly function call to c equivalent such as ne10_len_vec2f_c and both release and debug build seem to work OK.

thanks for any help on this. Not sure if there's an inherent issue within the program or it is really the call to ne10_len_vec2f_neon causing the corruption with release build.enter code here

Aucun commentaire:

Enregistrer un commentaire