This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug translator/11821] New: SDT_V2 dwarfless ambiguities with powerpc // -mno-regnames
- From: "fche at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sources dot redhat dot com
- Date: 16 Jul 2010 11:44:05 -0000
- Subject: [Bug translator/11821] New: SDT_V2 dwarfless ambiguities with powerpc // -mno-regnames
- Reply-to: sourceware-bugzilla at sourceware dot org
On powerpc, the default assembly generation is -mno-regnames, which yields
SDT_V2 operand strings such as ....
extern int i;
void foo(int j) {
asm volatile ("/* %0 %1 %2 %3 */" :: "g"(0), "g"(i), "g"("yo"), "g"(j));
}
# 3 "foo.c" 1
/* 0 i@l(9) .LC0 3 */
# 0 "" 2
Note how the literal 0 looks like 0, and register 3 looks like 3. No
punctuation like on x86 ($0 and %ecx respectively).
This ambiguity is not easy to get rid of. SDT_V2 could use a single
constraint code such as "r", but that would lead to a lot of reload
instructions as everything's reloaded into a register.
Or SDT_V2 programs could be compiled with -mregnames, in which case we get
/* 0 i@l(%r9) .LC0 %r3 */ #, i,, j
with the "g" constraint. This is great, except that sdt.h itself can't
know whether -mregnames is in effect (since there is no macro), so it can't
back down to "g".
Or SDT_V2 on powerpc could be doomed to debuginfo-only operation (in most
cases).
--
Summary: SDT_V2 dwarfless ambiguities with powerpc // -mno-
regnames
Product: systemtap
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: translator
AssignedTo: systemtap at sources dot redhat dot com
ReportedBy: fche at redhat dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=11821
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.