Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
_Rnd:
;** 181 ----------------------- *seed = C$1 = (int)_lsadd(_lshrs(_lsmpy(*seed, 31821), 1), 13849L);
;** 182 ----------------------- return C$1;
...
...
MOV *AR0 << #16, AC0 ; |181|
|| BSET ST1_FRCTMPYK #31821, AC0, AC0 ; |181|
SFTS AC0, #-1 ; |181|
ADD #13849, AC0, AC0 ; |181|
MOV AC0, T0 ; |181|
MOV T0, *AR0 ; |181|
.dwpsn "dsp_ops.c",182,3
.dwpsn "dsp_ops.c",183,1
BCLR ST1_FRCT
BCLR ST1_SATD
RET ; |182|
а вот при инлайне (внутри вызывающей функц.)
DW$L$_Calc_exc_rand$9$B:
;** -----------------------g9:
;** 65 ----------------------- *seed = C$16 = (int)_lsadd(_lshrs(_lsmpy(*seed, 31821), 1), 13849L);
;** 139 ----------------------- temp1 = C$16; // [24]
...
...
MOV *AR3 << #16, AC0 ; |65|
|| BSET ST1_FRCTMOV dbl(*SP(#90)), XAR3
BSET ST1_SATD
MPYK #31821, AC0, AC0 ; |65|
SFTS AC0, #-1 ; |65|
ADD #13849, AC0, AC0 ; |65|
MOV AC0, *AR3 ; |65|
.dwpsn "dsp_ops.h",139,3