atrajeev wrote:
systemtap fails to parse literal arguments of the format 'N' ( for
example in s390x and ia64 ) The regular expression to match literals
is defined in function "visit_target_symbol_arg" as below:
^[i\\$#][-]?[0-9][0-9]*$
[...]
This fails in s390x where literal is of the form 'N' which doesnt
have leading $ or i.
Can the s390 do the same hack done for powerpc and add the 'i' prefix in
sys/sdt.h?
#if defined __powerpc__ || defined __powerpc64__
# define _SDT_ARGTMPL(id) %I[id]%[id]
#else
# define _SDT_ARGTMPL(id) %[id]
#endif
[...]
- rc = regexp_match (asmarg, "^[i\\$#][-]?[0-9][0-9]*$", matches);
+ rc = regexp_match (asmarg, "^[i\\$#]?[-]?[0-9][0-9]*$", matches);
I would be worried about this change because of possible conflicts
with the other operand addressing-mode combinations. (Recall that 'i'
is added for ppc in order to separate register-number and
literal-number cases.)