From: Per Bothner Date: Tue, 2 Feb 1999 12:20:39 +0000 (-0800) Subject: Optimize: `return (a ? b : c)' as: `if (a) return b; else return c;'. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=66b48140891b4daad044b83aa9d737b83acdd494;p=gcc.git Optimize: `return (a ? b : c)' as: `if (a) return b; else return c;'. Optimize: `return (a ? b : c)' as: `if (a) return b; else return c;'. * jcf-write.c (generate_bytecode_return): New function. (generate_bytecode_insns): Use it, for RETURN_EXPR. * jcf-write.c (generate_bytecode_insns): For REAL_CST that is 0 or 1, generate special [fd]const_[01] instructions. * jcf-parse.c (yyparse): Don't emit_register_classes if -fsyntax-only. * verify.c (verify_jvm_instructions): Do INVALIDATE_PC after handling OPCODE_lookupswitch or OPCODE_tableswitch. From-SVN: r24972 --- diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c index 240f638cc6c..23f56a684b6 100644 --- a/gcc/java/jcf-parse.c +++ b/gcc/java/jcf-parse.c @@ -841,7 +841,7 @@ yyparse () } java_expand_classes (); - if (!java_report_errors () && !flag_emit_class_files) + if (!java_report_errors () && !flag_syntax_only) emit_register_classes (); return 0; } diff --git a/gcc/java/verify.c b/gcc/java/verify.c index 8cd3c663852..a6771dbde91 100644 --- a/gcc/java/verify.c +++ b/gcc/java/verify.c @@ -979,6 +979,7 @@ verify_jvm_instructions (jcf, byte_ops, length) while (low++ <= high) PUSH_PENDING (lookup_label (oldpc + IMMEDIATE_s4)); + INVALIDATE_PC; break; } @@ -1010,6 +1011,7 @@ verify_jvm_instructions (jcf, byte_ops, length) last = match; PUSH_PENDING (lookup_label (oldpc + IMMEDIATE_s4)); } + INVALIDATE_PC; break; }