私はプログラムを実行していますが、この時点で効率化する必要があります。Haswell マイクロアーキテクチャ (64 ビット) と「g++」を使用しています。目的はADC
、ループが終了するまで命令を使用することです。
//I removed every carry handlers from this preview, yo be more simple
size_t anum = ap[i], bnum = bp[i];
unsigned carry;
// The Carry flag is set here with an common addtion
anum += bnum;
cnum[0]= anum;
carry = check_Carry(anum, bnum);
for (int i=1; i<n; i++){
anum = ap[i];
bnum = bp[i];
//I want to remove this line and insert the __asm__ block
anum += (bnum + carry);
carry = check_Carry(anum, bnum);
//This block is not working
__asm__(
"movq -64(%rbp), %rcx;"
"adcq %rdx, %rcx;"
"movq %rsi, -88(%rbp);"
);
cnum[i] = anum;
}
CF
セットは初回追加のみですか?ADC
それとも私が指示をするたびにですか?
問題は、ループが実行されるたびに,が失われることにあると思います。これが問題である場合、どうすれば解決できますか?CF