Electronic Components Datasheet Search
  New Zealand  ▼
ALLDATASHEET.CO.NZ

X  

ST20-C1 Datasheet(PDF) 179 Page - STMicroelectronics

Part # ST20-C1
Description  Instruction Set Reference Manual
PDF  205 Pages
Scroll/Zoom Zoom In 100%  Zoom Out
Manufacturer  STMICROELECTRONICS [STMicroelectronics]
Direct Link  http://www.st.com
Logo STMICROELECTRONICS - STMicroelectronics

ST20-C1 Datasheet(HTML) 179 Page - STMicroelectronics

Back Button ST20-C1 Datasheet HTML 175Page - STMicroelectronics ST20-C1 Datasheet HTML 176Page - STMicroelectronics ST20-C1 Datasheet HTML 177Page - STMicroelectronics ST20-C1 Datasheet HTML 178Page - STMicroelectronics ST20-C1 Datasheet HTML 179Page - STMicroelectronics ST20-C1 Datasheet HTML 180Page - STMicroelectronics ST20-C1 Datasheet HTML 181Page - STMicroelectronics ST20-C1 Datasheet HTML 182Page - STMicroelectronics ST20-C1 Datasheet HTML 183Page - STMicroelectronics Next Button
Zoom Inzoom in Zoom Outzoom out
 179 / 205 page
background image
179/205
®
This is because when the two offsets are reduced, their prefixing sequences take 1
byte less so that the two interlocking jumps will still transfer control to the same
instructions as before. This compaction of non-optimal prefix sequences is difficult to
perform and a better method is to slowly build up the prefix sequences so that the
optimal solution is achieved. The following algorithm performs this.
5
Associate with each jump instruction or offset load an ‘estimate’ of the number
of bytes required to code it and initially set them all to 0.
6
Evaluate all jump and load offsets under the current assumptions of the size of
prefix sequences to the jumps and offset loads
7
For each jump or load offset set the number of bytes needed to the number in
the shortest sequence that will build up the current offset.
8
If any change was made to the number of bytes required then go back to 2 oth-
erwise the code has reached a stable state.
The stable state that is achieved will be the optimal state.
Where the code being analyzed has alignment directives, then it is possible that this
algorithm will not reach a stable state. One solution to this, is to allow the algorithm to
increase the instruction size but not allow it to reduce the size. This is achieved by
modifying stage 7 to choose the larger of: the currently calculated length, and the
previously calculated length. This approach does not always lead to minimal sized
code, but it guarantees termination of the algorithm.
Steps 2 and 3 can be combined so that the number of bytes required by each jump is
updated as the offset is calculated. This does mean that if an estimate is increased
then some previously calculated offsets may have been invalidated, but step 4 forces
another loop to be performed when those offsets can be corrected.
By initially setting the estimated size of offsets to zero, all jumps whose destination is
the next instruction are optimized out.
Knowledge of the structure of code generated by the compiler allows this process to
be performed on individual blocks of code rather than on the whole program. For
example it is often possible to optimize the prefixing in the code for the sub-compo-
nents of a programming language construct before the code for the construct is opti-
mized. When optimizing the construct it is known that the sub-components are already
optimal so they can each be considered as a fixed block of code which cannot be
reduced.
This algorithm may not be efficient for long sections of code whose underlying
structure is not known. If no knowledge of the structure is available (e.g. in an assem-
bler), all the code must be processed at once. In this case a code shrinking algorithm
where in step one the initial number of bytes is set to twice the number of bytes per
word is used. The prefix sequences then shr ink on each iteration of the loop. 1 or 2
iterations produce fairly good code although this method will not always produce
optimal code as it will not correctly prefix the pathological example given above.



Html Pages

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100  ...More


Datasheet Download

Go To PDF Page


Link URL



Does ALLDATASHEET help your business so far?  [ DONATE ] 

About Alldatasheet   |   Advertisement   |   Contact us   |   Privacy Policy   |   Link to Datasheet    |   Link Exchange   |   Manufacturer List
All Rights Reserved©Alldatasheet.com


Mirror Sites
English : Alldatasheet.com  |   English : Alldatasheet.net  |   Chinese : Alldatasheetcn.com  |   German : Alldatasheetde.com  |   Japanese : Alldatasheet.jp
Russian : Alldatasheetru.com  |   Korean : Alldatasheet.co.kr  |   Spanish : Alldatasheet.es  |   French : Alldatasheet.fr  |   Italian : Alldatasheetit.com
Portuguese : Alldatasheetpt.com  |   Polish : Alldatasheet.pl  |   Vietnamese : Alldatasheet.vn
Indian : Alldatasheet.in  |   Mexican : Alldatasheet.com.mx  |   British : Alldatasheet.co.uk  |   New Zealand : Alldatasheet.co.nz
Family Site : ic2ic.com  |   icmetro.com