avast / avast/retdec

x87: remove side-effect free calls in fxtract

Open
#892 2 comments 0 reactions 1 assignee Claimed by @PeterMatula View on GitHub
T-arch-x86-fpu
Dominant language
C++
Stars
8.6k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

Subject: https://github.com/rfalke/decompiler-subjects/blob/master/from_holdec/i386_x87_fpu/ia32_elf/subject.exe
Output:
```
int32_t FXTRACT(int32_t a1) {
float80_t v1 = (int64_t)a1; // 0x804b463
float80_t v2 = __pseudo_get_significand(v1); // 0x804b467
__pseudo_get_exponent(v1);
float64_t v3 = v2; // 0x804b469
printf("FXTRACT(para)[0=signi]: should= is=%12f/%15e\n", v3, v3);
__pseudo_get_significand_1(v1);
float64_t v4 = __pseudo_get_exponent_2(v1); // 0x804b48a
printf("FXTRACT(para)[1=exp]: should= is=%12f/%15e\n", v4, v4);
float80_t v5 = __pseudo_get_significand_3(12.34L); // 0x804b4a7
__pseudo_get_exponent_4(12.34L);
float64_t v6 = v5; // 0x804b4a9
printf("FXTRACT(12.34)[0=signi]: should= 1.542500/ 1.542500e+00 is=%12f/%15e\n", v6, v6);
__pseudo_get_significand_5(12.34L);
float64_t v7 = __pseudo_get_exponent_6(12.34L); // 0x804b4cc
printf("FXTRACT(12.34)[1=exp]: should= 3.000000/ 3.000000e+00 is=%12f/%15e\n", v7, v7);
return 0;
}
```

The lines like ` __pseudo_get_exponent(v1);` can be removed since the method has no side-effects.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.