Look at the arm and aarch64 implementations of these functions in glibc. /Marcus
Sent from my iPhone > On 30 Jan 2014, at 06:34, Kugan <kugan.vivekanandara...@linaro.org> wrote: > > I had a look at the missing target hook TARGET_ATOMIC_ASSIGN_EXPAND_FENV > to fix the C11 memory model testcase in regressions in trunk. > > I looked at the x86 implementation of this target hooks and x86 has > instructions (FNSTENV,FLDENV,FNSTSW,FNCLEX) for feholdexcept, > feclearexcept and feupdateenv. Does ARM has something similar? Any > pointers/links I can refer to. > > Please see the gcc internal documentation for the target hook below. > > — Target Hook: void TARGET_ATOMIC_ASSIGN_EXPAND_FENV (tree *hold, tree > *clear, tree *update) > > ISO C11 requires atomic compound assignments that may raise > floating-point exceptions to raise exceptions corresponding to the > arithmetic operation whose result was successfully stored in a > compare-and-exchange sequence. This requires code equivalent to calls to > feholdexcept, feclearexcept and feupdateenv to be generated at > appropriate points in the compare-and-exchange sequence. This hook > should set *hold to an expression equivalent to the call to > feholdexcept, *clear to an expression equivalent to the call to > feclearexcept and *update to an expression equivalent to the call to > feupdateenv. The three expressions are NULL_TREE on entry to the hook > and may be left as NULL_TREE if no code is required in a particular > place. The default implementation leaves all three expressions as > NULL_TREE. The __atomic_feraiseexcept function from libatomic may be of > use as part of the code generated in *update. > > > Thanks, > Kugan > > _______________________________________________ > linaro-toolchain mailing list > linaro-toolchain@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/linaro-toolchain _______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain