Changeset 2092


Ignore:
Timestamp:
Jun 15, 2012, 1:38:07 PM (5 years ago)
Author:
mulligan
Message:

Jaap noticed it's Randall Hyde not Holmes.

Location:
src/ASM/CPP2012-asm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/ASM/CPP2012-asm/cpp-2012-asm.bib

    r2087 r2092  
    191191
    192192@misc
    193 { holmes:branch:2006,
     193{ hyde:branch:2006,
    194194  title = {Branch displacement optimisation},
    195195  howpublished = {\url{http://groups.google.com/group/alt.lang.asm/msg/d31192d442accad3}},
    196196  year = {2006},
    197   key = {holmes:branch:2006}
     197  key = {hyde:branch:2006}
    198198}
    199199
  • src/ASM/CPP2012-asm/cpp-2012-asm.tex

    r2090 r2092  
    8080In order to do this, we must solve the `branch displacement' problem---deciding how best to expand pseudojumps to labels in assembly language to machine code jumps.
    8181Clearly a correct but efficient strategy would be to expand all unconditional pseudojumps to the MCS-51's \texttt{LJMP} instruction, and all conditional pseudojumps to a set configuration of jumps using \texttt{LJMP} instructions; this is inefficient and a waste of valuable code memory space.
    82 Finding an efficient solution with this expansion process is not trivial, and is a well-known problem for those writing assemblers targetting CISC architectures (for instance, see~\cite{holmes:branch:2006}).
     82Finding an efficient solution with this expansion process is not trivial, and is a well-known problem for those writing assemblers targetting CISC architectures (for instance, see~\cite{hyde:branch:2006}).
    8383
    8484To free the CerCo C compiler from having to consider complications relating to branch displacement, we have chosen to implement an optimising assembler, whose input language the compiler will target.
     
    258258[\mathtt{P_1}, \ldots \mathtt{P_n}] \xrightarrow{\left(\mathtt{P_i} \xrightarrow{\mbox{\fontsize{7}{9}\selectfont$\mathtt{expand\_pseudo\_instruction}$}} \mathtt{[I^1_i, \ldots I^q_i]} \xrightarrow{\mbox{\fontsize{7}{9}\selectfont$\mathtt{~~~~~~~~assembly1^{*}~~~~~~~~}$}} \mathtt{[0110]}\right)^{*}} \mathtt{[010101]}
    259259\end{displaymath}
    260 The most complex of the two passes is the first, which expands pseudoinstructions and must perform the task of branch displacement~\cite{holmes:branch:2006}.
     260The most complex of the two passes is the first, which expands pseudoinstructions and must perform the task of branch displacement~\cite{hyde:branch:2006}.
    261261The function \texttt{assembly\_1\_pseudo\_instruction} used in the body of the paper is essentially the composition of the two passes.
    262262
Note: See TracChangeset for help on using the changeset viewer.