Documentation
¶
Index ¶
- Constants
- Variables
- func Aconv(a int) string
- func DRconv(a int) string
- func Dconv(p *liblink.Prog, flag int, a *liblink.Addr) string
- func Mconv(a *liblink.Addr) string
- func Pconv(p *liblink.Prog) string
- func RAconv(a *liblink.Addr) string
- func Rconv(r int) string
- type Opcross
- type Oprang
- type Optab
- Bugs
Constants ¶
View Source
const ( NSNAME = 8 NSYM = 50 NREG = 16 )
View Source
const ( REGRET = 0 REGEXT = 10 REGG = REGEXT - 0 REGM = REGEXT - 1 REGTMP = 11 REGSP = 13 REGLINK = 14 REGPC = 15 NFREG = 16 FREGRET = 0 FREGEXT = 7 FREGTMP = 15 )
View Source
const ( C_NONE = iota C_REG C_REGREG C_REGREG2 C_SHIFT C_FREG C_PSR C_FCR C_RCON C_NCON C_SCON C_LCON C_LCONADDR C_ZFCON C_SFCON C_LFCON C_RACON C_LACON C_SBRA C_LBRA C_HAUTO C_FAUTO C_HFAUTO C_SAUTO C_LAUTO C_HOREG C_FOREG C_HFOREG C_SOREG C_ROREG C_SROREG C_LOREG C_PC C_SP C_HREG C_ADDR C_GOK C_NCLASS )
compiler allocates register variables F0 up compiler allocates external registers F7 down
View Source
const ( AXXX = iota AAND AEOR ASUB ARSB AADD AADC ASBC ARSC ATST ATEQ ACMP ACMN AORR ABIC AMVN AB ABL ABEQ ABNE ABCS ABHS ABCC ABLO ABMI ABPL ABVS ABVC ABHI ABLS ABGE ABLT ABGT ABLE AMOVWD AMOVWF AMOVDW AMOVFW AMOVFD AMOVDF AMOVF AMOVD ACMPF ACMPD AADDF AADDD ASUBF ASUBD AMULF AMULD ADIVF ADIVD ASQRTF ASQRTD AABSF AABSD ASRL ASRA ASLL AMULU ADIVU AMUL ADIV AMOD AMODU AMOVB AMOVBS AMOVBU AMOVH AMOVHS AMOVHU AMOVW AMOVM ASWPBU ASWPW ANOP ARFE ASWI AMULA ADATA AGLOBL AGOK AHISTORY ANAME ARET ATEXT AWORD ADYNT_ AINIT_ ABCASE ACASE AEND AMULL AMULAL AMULLU AMULALU ABX ABXRET ADWORD ASIGNAME ALDREX ASTREX ALDREXD ASTREXD APLD AUNDEF ACLZ AMULWT AMULWB AMULAWT AMULAWB AUSEFIELD ATYPE AFUNCDATA APCDATA ACHECKNIL AVARDEF AVARKILL ADUFFCOPY ADUFFZERO ADATABUNDLE ADATABUNDLEEND AMRC ALAST )
View Source
const ( C_SCOND = (1 << 4) - 1 C_SBIT = 1 << 4 C_PBIT = 1 << 5 C_WBIT = 1 << 6 C_FBIT = 1 << 7 C_UBIT = 1 << 7 C_SCOND_EQ = 0 C_SCOND_NE = 1 C_SCOND_HS = 2 C_SCOND_LO = 3 C_SCOND_MI = 4 C_SCOND_PL = 5 C_SCOND_VS = 6 C_SCOND_VC = 7 C_SCOND_HI = 8 C_SCOND_LS = 9 C_SCOND_GE = 10 C_SCOND_LT = 11 C_SCOND_GT = 12 C_SCOND_LE = 13 C_SCOND_NONE = 14 C_SCOND_NV = 15 SHIFT_LL = 0 << 5 SHIFT_LR = 1 << 5 SHIFT_AR = 2 << 5 SHIFT_RR = 3 << 5 )
scond byte
View Source
const ( D_GOK = 0 D_NONE = 1 D_BRANCH = D_NONE + 1 D_OREG = D_NONE + 2 D_CONST = D_NONE + 7 D_FCONST = D_NONE + 8 D_SCONST = D_NONE + 9 D_PSR = D_NONE + 10 D_REG = D_NONE + 12 D_FREG = D_NONE + 13 D_FILE = D_NONE + 16 D_OCONST = D_NONE + 17 D_FILE1 = D_NONE + 18 D_SHIFT = D_NONE + 19 D_FPCR = D_NONE + 20 D_REGREG = D_NONE + 21 D_ADDR = D_NONE + 22 D_SBIG = D_NONE + 23 D_CONST2 = D_NONE + 24 D_REGREG2 = D_NONE + 25 D_EXTERN = D_NONE + 3 D_STATIC = D_NONE + 4 D_AUTO = D_NONE + 5 D_PARAM = D_NONE + 6 D_LAST = D_NONE + 26 )
View Source
const ( LFROM = 1 << 0 LTO = 1 << 1 LPOOL = 1 << 2 LPCREL = 1 << 3 )
View Source
const ( FOLL = 1 << 0 LABEL = 1 << 1 LEAF = 1 << 2 )
Prog.mark
View Source
const (
REGARG = -1
)
-1 disables use of REGARG
View Source
const (
STRINGSZ = 1000
)
Variables ¶
View Source
var Linkarm = liblink.LinkArch{ ByteOrder: binary.LittleEndian, Pconv: Pconv, Name: "arm", Thechar: '5', Endian: liblink.LittleEndian, Addstacksplit: addstacksplit, Assemble: span5, Datasize: datasize, Follow: follow, Iscall: iscall, Isdata: isdata, Prg: prg, Progedit: progedit, Settextflag: settextflag, Symtype: symtype, Textflag: textflag, Minlc: 4, Ptrsize: 4, Regsize: 4, D_ADDR: D_ADDR, D_AUTO: D_AUTO, D_BRANCH: D_BRANCH, D_CONST: D_CONST, D_EXTERN: D_EXTERN, D_FCONST: D_FCONST, D_NONE: D_NONE, D_PARAM: D_PARAM, D_SCONST: D_SCONST, D_STATIC: D_STATIC, D_OREG: D_OREG, ACALL: ABL, ADATA: ADATA, AEND: AEND, AFUNCDATA: AFUNCDATA, AGLOBL: AGLOBL, AJMP: AB, ANOP: ANOP, APCDATA: APCDATA, ARET: ARET, ATEXT: ATEXT, ATYPE: ATYPE, AUSEFIELD: AUSEFIELD, }
View Source
var SYMDEF string
* this is the ranlib header
Functions ¶
Types ¶
Notes ¶
Bugs ¶
how to correctly handle line number for constant pool entries? for now, we set line number to the last instruction preceding them at least this won't bloat the .debug_line tables
Click to show internal directories.
Click to hide internal directories.