inc hl
ld d,(hl)
1 = d + 8 + 8 + 4
- 2 = d + 8 + 8 + 8
\ No newline at end of file
+ 2 = d + 8 + 8 + 8
+
+Structure member get:
+ Normally fetch pair
+ Then add pair and constant with result in hl
+
+ ld l,c ; 4
+ ld h,b ; 4
+ inc hl .. ; 6 = 8 + 6n
+or
+ ld l,c ; 4
+ ld h,b ; 4
+ ld a,#0x06 ; 7
+ add a,c ; 4
+ ld l,a ; 4
+ ld a,#0x00 ; 7
+ adc a,b ; 4
+ ld h,a ; 4 = 38
+alt: (only when result=hl and left, rigth = pair, const)
+ ld hl,#const ; 10
+ add hl,pair ; 11 = 21
+
+So (1) is best for n <= 2, (2) is just bad, (3) is good n > 2
+
+How about:
+ pair = pair + constant:
+1:
+ ld a,#0x08 ; 7
+ add a,c ; 4
+ ld c,a ; 4
+ ld a,#0x00 ; 7
+ adc a,b ; 4
+ ld b,a ; 4 = 30
+2:
+ ld hl,#const ; 10
+ add hl,pair ; 11
+ ld c,l ; 4
+ ld b,h ; 4 = 29
+One cycle. If I cache HL later it will throw away the advantage. Choose 1.
+
+PlusIncr on pairs:
+1:
+ inc pair ; 6 = 6n
+2:
+ ld a,#0x04 ; 7
+ add a,c ; 4
+ ld c,a ; 4
+ ld a,#0x00 ; 7
+ adc a,b ; 4
+ ld b,a ; 4 = 30
+So n <= 5 (1) is better.