]> sourceware.org Git - systemtap.git/commit
PR27829: Support floating point values passed through sdt.h markers
authorStan Cox <scox@redhat.com>
Thu, 30 Sep 2021 20:11:29 +0000 (16:11 -0400)
committerStan Cox <scox@redhat.com>
Thu, 30 Sep 2021 20:11:29 +0000 (16:11 -0400)
commiteaa15b047688175a94e3ae796529785a3a0af208
tree619f4ad923c91ba8d6f8701ac1d74dfb7afec2f9
parentcbb34b7244ba60cb0904d61dc9167290855106aa
PR27829: Support floating point values passed through sdt.h markers

Add the type to the individual arg entries in the .notes.stapsdt section;
currently SP@A, where S is optional '-' sign, P is precision of type and A is
address.  Revised format is SPT@A where T is optional 'f' for float variables.
Add x8664 float registers xmm8 - xmm15 and aarch64 float registers v8 - v31.
Parse the type field; result is currently ignored.  asm statements are
restricted to 30 arguments; sdt probes can have up to 12 arguments.  To fit
this into a single asm statement, precision and type are encoded into a single
field: 0xSSTT where SS is the precision and TT is the type as encoded by
__builtin_classify_type.  The sign S, precision P, and type T are decoded by
_SDT_SIGN, _SDT_SIZE, and _SDT_TYPE.  Test that the revised
.notes.stapsdt section interacts correctly with eu-elfutils and gdb.
includes/sys/sdt.h
main.cxx
runtime/loc2c-runtime.h
tapsets.cxx
testsuite/systemtap.base/sdt_notes.exp [new file with mode: 0644]
This page took 0.029053 seconds and 5 git commands to generate.