🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #309969

Re: Jak zoptymalizować modyfikację komórki pamięci z carry?

#309969
From: Borneq
Date: Mon, 11 Nov 2019 18:47
29 lines
2143 bytes
W dniu 11.11.2019 o 19:37, Borneq pisze:
> mp_limb_t addmul_1(mp_ptr rp, mp_srcptr up, mp_size_t n, mp_limb_t vl)
> {
>      mp_limb_t ul, cl, hpl, lpl, rl;
>      cl = 0;
>      do
>      {
>          ul = *up++;
>          umul_ppmm(hpl, lpl, ul, vl);
>          lpl += cl;
>          cl = (lpl < cl) + hpl;
>          rl = *rp;
>          lpl = rl + lpl;
>          cl += lpl < rl;
>          *rp++ = lpl;
>      } while (--n != 0);
>      return cl;
> }
> 

> PYTANIE: czy można modyfikować tylko rejestry, a potem zwiększyć tylko 
> odpowiednio *rp ? Ale wtedy jak odczytać carry? W assemblerze można, 
> natomiast tutaj jedyną metodą jest sprawdzenie czy wynik jest mniejszy 
> niż którykolwiek składnik sumy (koniecznie dwóch a nie większej ilości)

A może _addcarry_u64?
Nie tylko zwraca carry ale od razu dodaje poprzednie carry?
https://stackoverflow.com/questions/9145644/visual-c-x64-add-with-carry
https://scc.ustc.edu.cn/zlsc/tc4600/intel/2015.1.133/compiler_c/GUID-93E27B31-FDA6-4026-A2C4-98BF238349E9.htm
Technical Details
Message-ID: <5dc9acc2$0$556$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <5dc9aa52$0$17343$65785112@news.neostrada.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Subject: Re: Jak
 zoptymalizować modyfikację komórki pamięci z
 carry?
Newsgroups: pl.comp.lang.c
References: <5dc9aa52$0$17343$65785112@news.neostrada.pl>
From: Borneq <borneq@antyspam.hidden.p>
Date: Mon, 11 Nov 2019 19:47:30 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1
MIME-Version: 1.0
In-Reply-To: <5dc9aa52$0$17343$65785112@news.neostrada.pl>
Lines: 29
Message-ID: <5dc9acc2$0$556$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 91.239.205.59
X-Trace: 1573498050 unt-rea-a-02.news.neostrada.pl 556 91.239.205.59:51032
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit