Page 2 of 3

Re: HI-TECH Z80 C Compiler 7.80PL2

PostPosted: 21 Mar 2016, 17:19
by deathsoft
DimkaM wrote:унрил показал

Ты видимо неверно измерял. Замер надо делать при отключенных прерываниях, грузить надо bin файл в отладчик унриала по alt+r, измерять нужно только цикл в котором делается вывод, весь код до этого нужно прошагать мимо, а когда PC убдет на начале цикла переставить курсор после цикла и нажать F4, потом можно нажать num lock чтобы не ждать 15 минут.

Re: HI-TECH Z80 C Compiler 7.80PL2

PostPosted: 21 Mar 2016, 17:20
by deathsoft
DimkaM wrote:а это у тебя без констант походу, я размер бинаря писал

Ну т.к. товарищь на гяф не выложил font.c, то вместо этого шрифта был использован массив из нулей.

Re: HI-TECH Z80 C Compiler 7.80PL2

PostPosted: 21 Mar 2016, 17:21
by deathsoft
DimkaM wrote:колись какие параметры у тебя плиз в htc

Компилил через gui, параметры были - максимальная оптимизация (все галки) и уровень глобальной оптимизации 9.

Все тестировалось в конфигурации стандартного пентагона.

Re: HI-TECH Z80 C Compiler 7.80PL2

PostPosted: 21 Mar 2016, 18:14
by DimkaM
deathsoft wrote:Замер надо делать при отключенных прерываниях, грузить надо bin файл в отладчик унриала по alt+r, измерять нужно только цикл в котором делается вывод, весь код до этого нужно прошагать мимо, а когда PC убдет на начале цикла переставить курсор после цикла и нажать F4, потом можно нажать num lock чтобы не ждать 15 минут.

ага, всё так и было. тока инициализацыю и вывод времени тожа щитал

Re: HI-TECH Z80 C Compiler 7.80PL2

PostPosted: 21 Mar 2016, 18:20
by DimkaM
deathsoft wrote: уровень глобальной оптимизации 9.

а вот девятку я пока ненашол куда воткнуть.
Code: Select all
4.1.53 -Zg: Global Optimization
The -Zg option invokes global optimization during the code generation pass. This can result in
significant reductions to code size and RAM usage.

deathsoft wrote:вместо этого шрифта был использован массив из нулей.

мож она задетектила нули и тупо скипала чтение из массива? :)

Re: HI-TECH Z80 C Compiler 7.80PL2

PostPosted: 21 Mar 2016, 18:31
by DimkaM
ага, получилось. -Zg9 в доке не написано что там нада цыфири ставить
1650 мегатактов

Re: HI-TECH Z80 C Compiler 7.80PL2

PostPosted: 21 Mar 2016, 18:36
by DimkaM
код прадва на 200 байт толще вышел чем в иаре

Re: HI-TECH Z80 C Compiler 7.80PL2

PostPosted: 21 Mar 2016, 18:42
by DimkaM
ахуительно компилит
HTC
Code: Select all
;main.c: 59: for(i=0;i<8;i++)
   ld   d,0
   jp   z,l18
l14:
;main.c: 60: {
;main.c: 61: q = (*dest)&0xf0;
   ld   a,(bc)
   and   -16
   ld   l,a
;main.c: 62: *dest = q | ((*src++)&0x0f);
   ld   a,(iy+0)
   and   0Fh
   or   l
   ld   (bc),a
   inc   iy
;main.c: 63: dest+=256;
   ld   hl,0100h
   add   hl,bc
   push   hl
   pop   bc
;main.c: 64: }
   inc   d
   ld   a,d
   cp   08h
   jp   c,l14
;main.c: 65: }
   jp   l1
IAR
Code: Select all
?0019:
   LD   A,D
   CP   8
   JR   NC,?0023
?0020:
; 58.                       for(i=0;i<8;i++)
; 59.                       {
   LD   L,(IX-6)
   LD   H,(IX-5)
   LD   A,(HL)
   AND   240
; 60.                           q = (*dest)&0xf0;
   PUSH   AF
   LD   A,(IY+0)
   AND   15
   LD   B,A
   POP   AF
   OR   B
   LD   (HL),A
; 61.                           *dest = q | ((*src++)&0x0f);
   LD   A,1
   ADD   A,(IX-5)
   LD   (IX-5),A
   INC   D
; 62.                           dest+=256;
; 63.                       }
   INC   IY
   JR   ?0019

Re: HI-TECH Z80 C Compiler 7.80PL2

PostPosted: 21 Mar 2016, 19:27
by deathsoft
При оптимизации по размеру кода иару нет равных (всякие sdcc и прочая хуета - сосут):
http://sdcc.sourceforge.net/mediawiki/index.php/Z80_code_size

Re: HI-TECH Z80 C Compiler 7.80PL2

PostPosted: 21 Mar 2016, 19:48
by DimkaM
deathsoft wrote:http://sdcc.sourceforge.net/mediawiki/index.php/Z80_code_size

нда, табличка впечатляет.