[ARC]PR 88409: miscompilation due to missing cc clobber in longlong.h macros
authorVineet Gupta <vgupta@synopsys.com>
Wed, 3 Apr 2019 09:53:03 +0000 (09:53 +0000)
committerClaudiu Zissulescu <claziss@gcc.gnu.org>
Wed, 3 Apr 2019 09:53:03 +0000 (11:53 +0200)
commit67a9a71183b2f51c1c96fbc5523504eb5834e44f
tree4ab102127d34b43ad487123d3ba7036be496aa83
parent59e36c85e7e627feb458f2b8c43859d9422f1522
[ARC]PR 88409: miscompilation due to missing cc clobber in longlong.h macros

simple test such as below was failing.

| void main(int argc, char *argv[])
| {
|    size_t total_time = 115424;                       // expected 115.424
|    double secs = (double)total_time/(double)1000;
|    printf("%s %d %lf\n", "secs", total_time, secs);  // prints 113.504
|    printf("%d\n", (size_t)secs);
| }

The printf eventually called into glibc stdlib/divrem.c:__mpn_divrem()
which uses the __arc__ specific inline asm macros from longlong.h which
were causing miscompilation.

include/
2019-03-28  Vineet Gupta <vgupta@synopsys.com>

        PR 89877

        * longlong.h [__arc__] (add_ssaaaa): Add cc clobber
        (sub_ddmmss): Likewise.

Signed-off-by: Claudiu Zissulescu <claziss@gmail.com>
From-SVN: r270118
include/ChangeLog
include/longlong.h