00001 package gov.nasa.arc.ase.jpf.jvm.bytecode; 00002 00003 import de.fub.bytecode.classfile.ConstantPool; 00004 import gov.nasa.arc.ase.jpf.jvm.SystemState; 00005 import gov.nasa.arc.ase.jpf.jvm.KernelState; 00006 import gov.nasa.arc.ase.jpf.jvm.ThreadInfo; 00007 import gov.nasa.arc.ase.jpf.jvm.Types; 00008 import gov.nasa.arc.ase.util.Debug; 00009 00010 public class FCMPL extends Instruction { 00011 public Instruction execute(SystemState ss, KernelState ks, ThreadInfo th) { 00012 float v1 = Types.intToFloat(th.pop()); 00013 float v2 = Types.intToFloat(th.pop()); 00014 00015 if (Float.isNaN(v1) || Float.isNaN(v2)) 00016 th.push(-1, false); 00017 else if (v1 == v2) 00018 th.push(0, false); 00019 else if (v2 > v1) 00020 th.push(1, false); 00021 else 00022 th.push(-1, false); 00023 00024 return th.getPC().getNext(); 00025 } 00026 public void setPeer(de.fub.bytecode.generic.Instruction i, ConstantPool cp) { 00027 } 00028 }