Anonymous | Login | Signup for a new account | 2023-03-20 16:14 CET |
Main | My View | View Issues |
Viewing Issue Simple Details [ Jump to Notes ] | [ View Advanced ] [ Issue History ] [ Print ] | ||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||
0000164 | [libFirm] x86_64 backend (amd64) | major | always | 2016-01-07 22:27 | 2016-01-10 23:43 | ||||
Reporter | Matze | View Status | public | ||||||
Assigned To | Tron | ||||||||
Priority | normal | Resolution | fixed | ||||||
Status | resolved | Product Version | 1.21.0 | ||||||
Summary | 0000164: simple bswap asm block fails | ||||||||
Description |
The following simple program: unsigned bswap32(unsigned x) { unsigned result; __asm__("bswap %0" : "=r" (result) : "0" (x)); return result; } Gets miscompiled to: _bswap32: L0: /* Block BB[60:2] preds: none, freq: 1.000 */ #APP /* be_Asm T[109:10] t.c:3:2 */ bswap %eax #NO_APP ret /* amd64_ret X[117:18] t.c:4:2 */ It lacks a movl %edi, %eax before the bswap to get the argument into %eax. |
||||||||
Additional Information | |||||||||
Tags | No tags attached. | ||||||||
Attached Files | |||||||||
|
Mantis 1.1.5[^] Copyright © 2000 - 2008 Mantis Group |