 Conditional execution bits are an alternative to having branch instructions in our architecture. So far we've looked at having branch instructions where we determine if some condition is true and then we go somewhere else. Instead of using a branch instruction for say an if block, we could use conditional execution bits. These are different because instead of saying if this condition is true then I'll go over here, instead I'll say if this condition is true I will run this instruction. So we'll have some instruction that sets a global flag. So we'll run some condition, determine if our condition that we're interested in is true or false. Then we'd have a couple of instructions that are predicated on the results of our condition. They'll look at a global flag and if it's set depending on how our conditional bits are set to either true or false then we would run this instruction. If they're not then we just convert this instruction into a no op and we keep going. So this is really useful for small if-else blocks because instead of having multiple lines of code where you don't know when you're going to take a branch or you're not going to take a branch when you need to jump over a block of code, we just run through each line of code. Some of them will run, some of them will throw out. So this is good if you've got only a handful of lines of code in your if-else block but you don't really want to use this for large blocks of code because if your condition is false you can end up with say a couple dozen different no op instructions that you run. That's not really what we want so that would be a bad idea. Other interesting thing about conditional execution bits is that if you've got these we don't actually need branch instructions anymore. We can just make our jump instruction conditional on one of those global flags. The MIPS architecture doesn't use conditional execution bits but it's something that the ARM architecture does use.