diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1995-10-18 08:53:40 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1995-10-18 08:53:40 +0000 |
commit | d6583bb2a13f329cf0332ef2570eb8bb8fc0e39c (patch) | |
tree | ece253b876159b39c620e62b6c9b1174642e070e /gnu/usr.bin/gas/README.pic |
initial import of NetBSD tree
Diffstat (limited to 'gnu/usr.bin/gas/README.pic')
-rw-r--r-- | gnu/usr.bin/gas/README.pic | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gnu/usr.bin/gas/README.pic b/gnu/usr.bin/gas/README.pic new file mode 100644 index 00000000000..adde6fe6198 --- /dev/null +++ b/gnu/usr.bin/gas/README.pic @@ -0,0 +1,25 @@ +A few short notes on PIC support. + +. References to the symbol "_GLOBAL_OFFSET_TABLE_" are special. These always + PC relative to the start of the current instruction. Also, they occur + in "complex" expressions in function prologs, eg. + + move _GLOBAL_OFFSET_TABLE_ + (. - L1 ), %some_register + + The expression parser can't handle these generically, so the expression + above is recognised as a special case. + +. Some archs have special PIC assembler syntax to reference static and global + data. This is handled in targ-cpu.c. + +. Correct relocation_info must be output (eg. fields r_jmptable and r_baserel). + +. Internal labels must be output in the symbol table if they are referred to + by PIC instructions. The linker must allocate a GOT slot for them. + +. The former meaning of the -k switch ("WORKING_DOT" stuff), has been nuked + in favour of enabling PIC code recognition. + + +-pk + |