Skip to content

Comments

Start converting operations to a new format#113

Open
woodard wants to merge 27 commits intoccoutant:mainfrom
woodard:op-formatting
Open

Start converting operations to a new format#113
woodard wants to merge 27 commits intoccoutant:mainfrom
woodard:op-formatting

Conversation

@woodard
Copy link
Contributor

@woodard woodard commented Aug 19, 2025

Propose adding a new formatting structure when specifying DWARF operations.

Propose adding a new formatting structure when specifying DWARF
operations.

Signed-off-by: Ben Woodard <woodard@redhat.com>
> also recieve parameters from the stack and make use of information
> from its evaluation context.

> *The description of the inputs of each operation will be as followes:
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be its own section possibly after the section on Expression evaluation context?

As a first draft, this had many typos and selling mistakes. I think that
I fixed all the spelling mistakes and several other mistakes that I
noticed along the way.

Signed-off-by: Ben Woodard <woodard@redhat.com>
Start fixing markdown.

Signed-off-by: Ben Woodard <woodard@redhat.com>
Signed-off-by: Ben Woodard <woodard@redhat.com>
Which flavor will github actually render?

Signed-off-by: Ben Woodard <woodard@redhat.com>
Signed-off-by: Ben Woodard <woodard@redhat.com>
Fix the markdown with a WYSIWYG editor.

Signed-off-by: Ben Woodard <woodard@redhat.com>
Tony spotted several errors and had a few comments. I applied almost
all of his suggested fixes and replied to the others but left them
unresolved awaiting further discussion.

Signed-off-by: Ben Woodard <woodard@redhat.com>
Continue the process of converting operators to the new format.

Signed-off-by: Ben Woodard <woodard@redhat.com>
Finish updating the operators through section 3.7.

Signed-off-by: Ben Woodard <woodard@redhat.com>
Continue updating operators to the new format up through section 3.10.
Also fix a couple of mistakes made in earlier sections.

Signed-off-by: Ben Woodard <woodard@redhat.com>
Update the operations descriptions to the new format up through
section 3.12 the composite operators.
Delete a few trailing whitespaces that have crept in.

Signed-off-by: Ben Woodard <woodard@redhat.com>
Update the descriptions to the new format up through section 3.15.

Signed-off-by: Ben Woodard <woodard@redhat.com>
- Per Cary's request change the terminology to "inline parameters" and
"stack operands". This may end up being too big of a change to make
outside of chapter 3 of the standard.
- Finish  off the rest of the operators.
- Remove discussion comments for issues that are settled.
- Try to make everything consistent.

Signed-off-by: Ben Woodard <woodard@redhat.com>
Fix a place where I missed converting from parameter to operand.

Signed-off-by: Ben Woodard <woodard@redhat.com>
Table 8.9 currently has an "operand" column. With the new terminology
this should now be called "parameters".

Signed-off-by: Ben Woodard <woodard@redhat.com>
This reverts the changes of the name used for inline operands and
parameters. This was just too big of a change to make to the DWARF
standard and would have impacted a broad range of chapters not just
chapter 3. Without that change, the descriptions of the the operands
doesn't need to change and so the change ends up being just add a
header to each header. This makes this change much smaller.

With a header like this, many descriptions of the operators can be
greatly simplified. The sources of the information used by the
operators, their types as well as the output of the operator can be
removed from the operator description leaving the description to
describe the function of the operator.

Try out a new header format. Rather than a "bulky" set of lists inside
of list this compresses all of the information into a line.

Signed-off-by: Ben Woodard <woodard@redhat.com>
Ron and Cary suggested some changes to my header format.
1) Get rid of the numbers
2) Put the inline operands on the operation declaration line
3) Remove the operation name from the stack effects line.

Signed-off-by: Ben Woodard <woodard@redhat.com>
Finish, making the requested changes for v3 of this draft.

* Added additional expository text to the beginning of chapter 3. This
  helps clarify the difference between inline operands where type
  refers to their encoding and stack arguments where type has more to
  do with limitations on operator's domain.
* Change to using A B C D vs. X Y Z T
* Added a few more discussion points as I considered them
* Switched from LEB128 and ULEB128 to SLEB and ULEB, This change will
  need to be propegated throughout the rest of the DWARF standards
  document.
* Removed errant prime on uconst operators.

Signed-off-by: Ben Woodard <woodard@redhat.com>
Ron pointed out some problems. I tried to address them.
1) I had a spurious 2 in one place. I blame the cat.
2) I had given dup a spurious stack argument.
3) Added some text to explain that the stack grows to the right and
thus the top of the stack is on the right while the deepest part of
the stack is on the left. I also went through and made sure that I
didn't reverse the stack in any operators.
4) By convention I made A the deepest stack argument. I had not done
this consistently.

Signed-off-by: Ben Woodard <woodard@redhat.com>
Markus Metzger found 3 problems which pointed out another
problem. This patch addresses the issues that he pointed out.

When converting to the new convention where A is always on the left I
introduced a couple of bugs.
1) I had described drop incorrectly.
2) I had swapped arguments in the output of over.

I also had failed to paste in some boiler plate that I was using for
the desctiption of the changes to be made to section 3.2

His suggested change to swap also pointed out the need to explain that
generic stack argument names referred to the data and its type rather
than giving the stack position a name.

Signed-off-by: Ben Woodard <woodard@redhat.com>
These are just some minor tweaks to the header proposal.

Signed-off-by: Ben Woodard <woodard@redhat.com>
Final revision of the DWARF Operation Header's proposal.
  * Remove FIXME's - moved those to 005a
  * Update README.md

Signed-off-by: Ben Woodard <woodard@redhat.com>
Signed-off-by: Ben Woodard <woodard@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants