Changeset 13530
 Timestamp:
 Mar 15, 2010, 5:58:56 AM (10 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

trunk/source/level0/PPC/ppcnumbers.lisp
r13328 r13530 203 203 204 204 205 ;;;; maybe this could be smarter but frankly scarlett I dont give a damn 205 ;;; maybe this could be smarter but frankly scarlett I dont give a damn 206 ;;; ticket:666 describes one reason to give a damn. 206 207 #+ppc32target 207 208 (defppclapfunction %fixnumtruncate ((dividend arg_y) (divisor arg_z)) … … 213 214 (boxedquotient temp1) 214 215 (remainder temp2)) 216 (cmpwi divisor '1) 215 217 (unboxfixnum unboxeddividend dividend) 216 218 (unboxfixnum unboxeddivisor divisor) 219 (beq @neg) 217 220 (divwo. unboxedquotient unboxeddividend unboxeddivisor) ; set OV if divisor = 0 218 221 (boxfixnum boxedquotient unboxedquotient) … … 232 235 (setnargs 2) 233 236 (la temp0 8 vsp) 237 (ba .SPvalues) 238 @neg 239 (nego. dividend dividend) 240 (lwz arg_z '*leastpositivebignum* nfn) 241 (bns @ret) 242 (mtxer rzero) 243 (lwz dividend ppc32::symbol.vcell arg_z) 244 @ret 245 (mr temp0 vsp) 246 (vpush dividend) 247 (vpush rzero) 248 (setnargs 2) 234 249 (ba .SPvalues))) 235 250 … … 243 258 (boxedquotient temp1) 244 259 (remainder temp2)) 260 (cmpdi divisor '1) 245 261 (unboxfixnum unboxeddividend dividend) 246 262 (unboxfixnum unboxeddivisor divisor) 263 (beq @neg) 247 264 (divdo. unboxedquotient unboxeddividend unboxeddivisor) ; set OV if divisor = 0 248 265 (boxfixnum boxedquotient unboxedquotient) … … 262 279 (setnargs 2) 263 280 (la temp0 '2 vsp) 264 (ba .SPvalues))) 281 (ba .SPvalues) 282 @neg 283 (nego. dividend dividend) 284 (ld arg_z '*leastpositivebignum* nfn) 285 (bns @ret) 286 (mtxer rzero) 287 (ld dividend ppc64::symbol.vcell arg_z) 288 @ret 289 (mr temp0 vsp) 290 (vpush dividend) 291 (vpush rzero) 292 (setnargs 2) 293 (ba .SPvalues) 294 )) 265 295 266 296
Note: See TracChangeset
for help on using the changeset viewer.