BSD 4_4_Lite1 development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Wed, 13 Mar 1991 16:54:49 +0000 (08:54 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Wed, 13 Mar 1991 16:54:49 +0000 (08:54 -0800)
Work on file usr/src/contrib/gas-1.38/NOTES

Synthesized-from: CSRG/cd2/4.4BSD-Lite1

usr/src/contrib/gas-1.38/NOTES [new file with mode: 0644]

diff --git a/usr/src/contrib/gas-1.38/NOTES b/usr/src/contrib/gas-1.38/NOTES
new file mode 100644 (file)
index 0000000..b3f3f92
--- /dev/null
@@ -0,0 +1,35 @@
+gdb debugging of assembly sources:
+       write a function linestab() that generates a .stabd symbol
+               independently of the input
+       write a function filestab() to generate a .stabs symbol
+       we need to take especial care with #line directives
+               since we want to handle locore, and locore is passed thru cpp
+               this could be tough
+       outline of a solution:
+               cpp sends us lines of the form
+                       # logical-line "logical-file" trash
+               these lines are interpreted ahead of the gas preprocess pass
+               in the starting state, the logical filename is the same
+                       as the real filename (in case there're no #lines)
+               the initial logical line number is 1
+               every time we're ready to process a new instruction line,
+                       if the source file has changed,
+                               emit a .stabs for the logical file
+                       emit a .stabd for the logical line
+                       bump the logical line number
+                               can gas eat multiple actual lines in one insn?
+
+i386 nits:
+       jmp *$foo produces a short relative branch
+       string quotes in comments
+               Bill says gas eats text across newlines to find matches
+               works fine for me
+               I think it's most likely due to cpp
+       make / no longer be a comment char
+               it's now like the VAX: # is the only comment char
+       incorrectly assembles lcall, int3, into, bsr/f instructions
+       constant expressions fail if more than a few terms
+               gives (low+2)*3+4*5 as an example
+               works fine for me
+       cpp seems to think $ is a valid literal
+               use -$ in /usr/bin/cpp