このページを編集する際は,編集に関する方針に従ってください.[]
概要[]
- gcc-4.1.0/gcc/fold-const.cにて定義
- 符号を反転する
- 返り値はオーバーフローしたかどうか
引数[]
- unsigned HOST_WIDE_INT l1
- HOST_WIDE_INT h1
- unsigned HOST_WIDE_INT *lv
- HOST_WIDE_INT *hv
実装[]
305 /* Negate a doubleword integer with doubleword result.
306 Return nonzero if the operation overflows, assuming it's signed.
307 The argument is given as two `HOST_WIDE_INT' pieces in L1 and H1.
308 The value is stored as two `HOST_WIDE_INT' pieces in *LV and *HV. */
309
310 int
311 neg_double (unsigned HOST_WIDE_INT l1, HOST_WIDE_INT h1,
312 unsigned HOST_WIDE_INT *lv, HOST_WIDE_INT *hv)
313 {
314 if (l1 == 0)
315 {
316 *lv = 0;
317 *hv = - h1;
318 return (*hv & h1) < 0;
319 }
320 else
321 {
322 *lv = -l1;
323 *hv = ~h1;
324 return 0;
325 }
326 }