* gencode.c (build_instruction) [MUL]: Cast operands to word64, to
[deliverable/binutils-gdb.git] / gas / NOTES
CommitLineData
07c788ce 1-*- text -*-
0e39a8bb 2
07c788ce 3PORTING:
542e1629 4
5bed5321
KR
5Sorry, no description of the interfaces is written up yet. Look at existing
6back ends and work from there.
07c788ce 7
77dea544
ILT
8New hosts: The configure script, which is generated by autoconf,
9should handle all host specific configuration.
10
11New target formats: Look at the BFD_ASSEMBLER code. The a.out or ELF
12code might be a fair example. There are no "good" examples yet,
13unfortunately, nor any good documentation of the changes.
07c788ce 14
5bed5321
KR
15New target processors: Check first to see if the BFD_ASSEMBLER interface is
16supported by the file format code you need to use.
07c788ce 17
07c788ce
KR
18DOCUMENTATION:
19
1535ff15 20The internals of gas need documenting.
07c788ce 21
607c8625
KR
22The documentation should also contain a "Trouble" section similar to gcc's
23manual: real bugs, common problems, incompatibilities, etc.
07c788ce
KR
24
25Anyone want to offer to maintain a man page?
26
27BFD CONVERSION:
28
5bed5321
KR
29The "#ifdef BFD_ASSEMBLER" code is on its way in; the "#ifndef BFD_ASSEMBLER"
30code is on its way out. The new code uses BFD data structures, and calls BFD
31for anything that needs to be written to the output file. The old code did all
32the writing itself, or in a couple of cases, used BFD as a slightly higher
33level than stdio (i.e., bfd_seek, bfd_write -- these are not the preferred
34interface).
07c788ce
KR
35
36Because of this, some of this code is messy. Lots of ifdef's, and the
5bed5321
KR
37non-BFD_ASSEMBLER version often has multiple conditional tests inside it for
38various processors or formats. As the various targets get converted over,
39these will gradually go away.
07c788ce 40
07c788ce
KR
41TO DO:
42
43Remove DONTDEF code, commented-out code.
44
5bed5321
KR
45Eliminate, as much as possible, anything not in config that is conditionalized
46on a CPU, format, or environment.
07c788ce 47
09257909
KR
48Merge COFF support into one version, supporting all the pseudo-ops used in
49either versions now, but using BFD for high-level operations. (See second
50following item.) Currently there are two versions (plus the new BFD code),
51which support different features, and are used on different targets.
52
53Convert remaining a.out/b.out targets to using the BFD_ASSEMBLER code by
54default.
55
5bed5321
KR
56Finish conversion to using BFD for all object file writing. (This is the
57BFD_ASSEMBLER code, not BFD or BFD_HEADERS.) VMS might be the tough one here,
09257909
KR
58since there's no BFD support for it at all yet. Eliminate the old code. Some
59of this can be done target by target, so doing a target where the CPU or
60format already supports BFD_ASSEMBLER mode may be easiest.
07c788ce 61
de001789
KR
62Fix lots of uses of empty strings to use null pointers. Will improve
63efficiency, and should make code clearer too.
64
5bed5321
KR
65Clean up comments; lots of 'em are one previous maintainer griping about
66another previous maintainer, unrelated to the code. (And with no names,
67they're not so fun to read. :-)
07c788ce 68
0c3cab7a
KR
69For sparc: "call 0" becomes "jmpl %g0,%l7", and similarly for absolute
70addresses in -4096...4095. (Solaris assembler does this. No
71relocation required, no absolute symbol needed.) For addresses
72outside the range, for COFF, keep generating an absolute symbol to use
73for relocs.
74
09257909
KR
75Get Steve to document H8/500 stuff (and others).
76
77Improve test suite. Incorporate more reported net bugs, and non-confidential
78Cygnus customer bugs, and anything else.
79
80Add support for i386/i486 16-bit mode, so operating system initialization code
81doesn't require a separate assembler nor lots of `.byte' directives.
de001789 82
09257909
KR
83See if it's more maintainable (and not too much of a performance loss) to use
84a yacc grammar for parsing input. The lexer will have to be flexible, and the
85grammar will have to contain any construct used on any platform, but it may be
86easier to maintain, instead of having code in most of the back ends.
07c788ce 87
09257909 88PIC support.
5bed5321 89
74a88e8b
KR
90Torbjorn Granlund <tege@cygnus.com> writes, regarding alpha .align:
91
92 Please make sure the .align directive works as in digital's assembler.
93 They fill the space with a sequence of "bis $31,$31,$31;ldq_u $31,0($30)"
94 since these two instructions can dual-issue. Since .align is ued a lot by
95 gcc, it is an important optimization.
96
07c788ce
KR
97(From old "NOTES" file to-do list, not really reviewed:)
98
99fix relocation types for i860, perhaps by adding a ref pointer to fixS?
c6cfc5b5 100
0e39a8bb 101remove the ifdef's from fx_callj tests?
0e39a8bb 102
07c788ce 103space tighten sparc alignment?
542e1629 104
07c788ce 105md_ => tc_
0e39a8bb 106
07c788ce 107share b.out with a.out.
This page took 0.183283 seconds and 4 git commands to generate.