790 CondItem mkCond() { |
790 CondItem mkCond() { |
791 return this; |
791 return this; |
792 } |
792 } |
793 |
793 |
794 Chain jumpTrue() { |
794 Chain jumpTrue() { |
795 if (tree == null) return code.mergeChains(trueJumps, code.branch(opcode)); |
795 if (tree == null) return Code.mergeChains(trueJumps, code.branch(opcode)); |
796 // we should proceed further in -Xjcov mode only |
796 // we should proceed further in -Xjcov mode only |
797 int startpc = code.curPc(); |
797 int startpc = code.curPc(); |
798 Chain c = code.mergeChains(trueJumps, code.branch(opcode)); |
798 Chain c = Code.mergeChains(trueJumps, code.branch(opcode)); |
799 code.crt.put(tree, CRTable.CRT_BRANCH_TRUE, startpc, code.curPc()); |
799 code.crt.put(tree, CRTable.CRT_BRANCH_TRUE, startpc, code.curPc()); |
800 return c; |
800 return c; |
801 } |
801 } |
802 |
802 |
803 Chain jumpFalse() { |
803 Chain jumpFalse() { |
804 if (tree == null) return code.mergeChains(falseJumps, code.branch(code.negate(opcode))); |
804 if (tree == null) return Code.mergeChains(falseJumps, code.branch(Code.negate(opcode))); |
805 // we should proceed further in -Xjcov mode only |
805 // we should proceed further in -Xjcov mode only |
806 int startpc = code.curPc(); |
806 int startpc = code.curPc(); |
807 Chain c = code.mergeChains(falseJumps, code.branch(code.negate(opcode))); |
807 Chain c = Code.mergeChains(falseJumps, code.branch(Code.negate(opcode))); |
808 code.crt.put(tree, CRTable.CRT_BRANCH_FALSE, startpc, code.curPc()); |
808 code.crt.put(tree, CRTable.CRT_BRANCH_FALSE, startpc, code.curPc()); |
809 return c; |
809 return c; |
810 } |
810 } |
811 |
811 |
812 CondItem negate() { |
812 CondItem negate() { |
813 CondItem c = new CondItem(code.negate(opcode), falseJumps, trueJumps); |
813 CondItem c = new CondItem(Code.negate(opcode), falseJumps, trueJumps); |
814 c.tree = tree; |
814 c.tree = tree; |
815 return c; |
815 return c; |
816 } |
816 } |
817 |
817 |
818 int width() { |
818 int width() { |