diff options
| author | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-18 10:09:17 +0000 |
|---|---|---|
| committer | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-18 10:09:17 +0000 |
| commit | 5f2cc6d814efbf21ca04c2f488c42ca2261ac452 (patch) | |
| tree | 88546ee135204c607700f54c24ce0196b82abc6c | |
| parent | d7b8e04e33f7f3d5ddd023ca695ca2f4e0eb1a8a (diff) | |
| download | ppe42-gcc-5f2cc6d814efbf21ca04c2f488c42ca2261ac452.tar.gz ppe42-gcc-5f2cc6d814efbf21ca04c2f488c42ca2261ac452.zip | |
2003-09-16 Andrew Haley <aph@redhat.com>
* jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71514 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/java/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/java/jcf-write.c | 17 |
2 files changed, 21 insertions, 0 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index a3cee951748..a171aa1bd98 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,7 @@ +2003-09-16 Andrew Haley <aph@redhat.com> + + * jcf-write.c (generate_bytecode_insns): Add MIN_EXPR and MAX_EXPR. + 2003-09-17 Ranjit Mathew <rmathew@hotmail.com> Fixes PR java/9577 diff --git a/gcc/java/jcf-write.c b/gcc/java/jcf-write.c index 3609807a410..febd04fbcaa 100644 --- a/gcc/java/jcf-write.c +++ b/gcc/java/jcf-write.c @@ -2413,6 +2413,23 @@ generate_bytecode_insns (tree exp, int target, struct jcf_partial *state) case JAVA_EXC_OBJ_EXPR: NOTE_PUSH (1); /* Pushed by exception system. */ break; + case MIN_EXPR: + case MAX_EXPR: + { + /* This copes with cases where fold() has created MIN or MAX + from a conditional expression. */ + enum tree_code code = TREE_CODE (exp) == MIN_EXPR ? LT_EXPR : GT_EXPR; + tree op0 = TREE_OPERAND (exp, 0); + tree op1 = TREE_OPERAND (exp, 1); + tree x; + if (TREE_SIDE_EFFECTS (op0) || TREE_SIDE_EFFECTS (op1)) + abort (); + x = build (COND_EXPR, TREE_TYPE (exp), + build (code, boolean_type_node, op0, op1), + op0, op1); + generate_bytecode_insns (x, target, state); + break; + } case NEW_CLASS_EXPR: { tree class = TREE_TYPE (TREE_TYPE (exp)); |

