나는 함께 곱셈을하는 부호없는 long long int (64 비트 정수)를 두 개 가지고 있습니다. 그러나 (이것이 의미가 있습니다) 내장 된 128 비트 데이터 유형이 없습니다 (그리고 나는 확실히 부유하지 않아서 128 비트 프로세서를 감당할 수 없습니다). 따라서 결과의 하위 64 비트 만 반환합니다. 나머지를 얻는 방법이 있습니까 (아마도 다른 레지스터에 저장되어있을 것입니까?)?64 비트 곱셈의 전체 128 비트 결과를 얻는 방법
나는 임베디드 어셈블리를 두려워하지 않는다. 이것은 중요 할 수 있기 때문에 : % rax 레지스터를 사용하려고 시도한 다른 번에 gcc는 그러한 레지스터가 없다고 불평했습니다. GAS는 내가 인식하지 못하는 다른 구문을 사용합니까?
"중복"가정의 (a)하지 중복, (b)는, -5로 폐쇄 불분명 –
여기에 복제본이 있습니다 : http://stackoverflow.com/questions/13187629/gcc-intrinsic-for-extended-division-multiplication –
@Matt 확실히 속임수입니다 –