diff options
author | Roger Sayle <roger@eyesopen.com> | 2005-02-01 21:20:34 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2005-02-01 21:20:34 +0000 |
commit | 8ddd633ab7c014302093a65f134fd2b7edea97b9 (patch) | |
tree | 49304ee893802752508f13bc8eede2f0cf647ac6 /gcc/java/jcf-write.c | |
parent | ca58f2bc5c2ad8d30514c32e2e0b5283d0486a3c (diff) | |
download | gcc-8ddd633ab7c014302093a65f134fd2b7edea97b9.zip gcc-8ddd633ab7c014302093a65f134fd2b7edea97b9.tar.gz gcc-8ddd633ab7c014302093a65f134fd2b7edea97b9.tar.bz2 |
jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR of unsigned types using iushr and lushr JVM bytecodes.
* jcf-write.c (generate_bytecode_insns): Implement RSHIFT_EXPR
of unsigned types using iushr and lushr JVM bytecodes.
From-SVN: r94560
Diffstat (limited to 'gcc/java/jcf-write.c')
-rw-r--r-- | gcc/java/jcf-write.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/java/jcf-write.c b/gcc/java/jcf-write.c index da8c6c9..603eaa5 100644 --- a/gcc/java/jcf-write.c +++ b/gcc/java/jcf-write.c @@ -2146,7 +2146,9 @@ generate_bytecode_insns (tree exp, int target, struct jcf_partial *state) jopcode = OPCODE_irem; goto binop; case LSHIFT_EXPR: jopcode = OPCODE_ishl; goto binop; - case RSHIFT_EXPR: jopcode = OPCODE_ishr; goto binop; + case RSHIFT_EXPR: + jopcode = TYPE_UNSIGNED (type) ? OPCODE_iushr : OPCODE_ishr; + goto binop; case URSHIFT_EXPR: jopcode = OPCODE_iushr; goto binop; case TRUTH_AND_EXPR: case BIT_AND_EXPR: jopcode = OPCODE_iand; goto binop; |