[PATCH] systemtap: Fix parsing of literals in SDT_V3 operand for s390x and ia64

Suzuki K. Poulose suzuki@in.ibm.com
Thu Oct 11 10:57:00 GMT 2012


On 10/09/2012 09:04 PM, Frank Ch. Eigler wrote:
>
> 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

Frank,

We will try this and let you know the results. I guess we could do this
for ia64 as well.

>
>> [...]
>> -      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.)

OK.

Thanks
Suzuki
>
> - FChE
>



More information about the Systemtap mailing list