db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel John Debrunner (JIRA)" <derby-...@db.apache.org>
Subject [jira] Commented: (DERBY-921) Support 32bit branch offsets for conditional logic in generated code.
Date Fri, 03 Feb 2006 20:50:06 GMT
    [ http://issues.apache.org/jira/browse/DERBY-921?page=comments#action_12365121 ] 

Daniel John Debrunner commented on DERBY-921:

Basic solution is to turn 

if  X branch using big offset
then code


if  NOT X branch to T: (small fixed offset of +8)
GOTO_W big offset
T: then code

and change replace GOTO with GOTO_W when the offset is bigger than 32767.

Full details will be in the code comments for the Conditional class in the change

> Support 32bit branch offsets for conditional logic in generated code.
> ---------------------------------------------------------------------
>          Key: DERBY-921
>          URL: http://issues.apache.org/jira/browse/DERBY-921
>      Project: Derby
>         Type: Sub-task
>   Components: Services, SQL
>     Reporter: Daniel John Debrunner
>     Assignee: Daniel John Debrunner
>     Priority: Minor
>      Fix For:

> Conditionals in generated code (MethodBuilder.conditionalIf and conditionalIfNull) generate
code that only supports 16 bit jump offsets for the branch opcode (e.g. IFNONNULL)  or the
GOTO opcode. Earlier code now detects the offset being larger than 32767.
> The JVM supports a 32bit jump offset instruction, GOTO_W, this can be used to support
jump offsets that are bigger than 16bits (32767) for both the branch opcode
> and the GOTO instruction.
> This allow increasing the number of IN list values as seen in the query in the largeCodeGen

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

View raw message