Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!uwm.edu!rpi!batcomputer!cornell!rochester!pt.cs.cmu.edu!gandalf.cs.cmu.edu!lindsay From: lindsay@gandalf.cs.cmu.edu (Donald Lindsay) Newsgroups: comp.arch Subject: Re: Loop instructions Message-ID: <12739@pt.cs.cmu.edu> Date: 21 Apr 91 18:13:04 GMT References: <1991Apr16.152438.3445@waikato.ac.nz> Organization: Carnegie Mellon Lines: 16 In article <1991Apr16.152438.3445@waikato.ac.nz> ldo@waikato.ac.nz (Lawrence D'Oliveiro, Waikato University) writes: >On the 68000 family, the DBcc loop instructions decrement the 16-bit count >register and stop looping when it reaches -1 (or 65535), not 0. Compiler writers dislike this instruction, but not because of the test semantics. The killer is that the count is 16 bits, on a machine where variables and expressions are naturally 32 bits. This means that the compiler can only use the instruction when it possesses range information. A sophisticated compiler (with optimization enabled) can often deduce ranges. However, when that machine came out, the instruction was essentially only usable by assembler programmers. -- Don D.C.Lindsay Carnegie Mellon Robotics Institute