This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: libjava build failure sol2.6 asm problem?


On Thu, 27 Dec 2001, Kaveh R. Ghazi wrote:
> Was there any progress on the java bootstrap problem listed here?
> 
> http://gcc.gnu.org/ml/gcc/2001-12/msg01179.html

I've isolated it to this patch, in gcc/java:

2001-12-03  Per Bothner  <per@bothner.com>

   * decl.c (complete_start_java_method):  Now generate TRY_FINALLY_EXPR
   instead of CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR.
   * jcf-write.c (generate_bytecode_insns):  Remove support for
   CLEANUP_POINT_EXPR and WITH_CLEANUP_EXPR as they are no longer used.
   * check-init.c (check_init):  Likewise.

Generating a TRY_FINALLY_EXPR causes a GOTO_SUBROUTINE_EXPR.  In expr.c:

    case GOTO_SUBROUTINE_EXPR:
      {
        rtx subr = (rtx) TREE_OPERAND (exp, 0);
        rtx return_link = *(rtx *) &TREE_OPERAND (exp, 1);
        rtx return_address = gen_label_rtx ();
        emit_move_insn (return_link,
                        gen_rtx_LABEL_REF (Pmode, return_address));

So that's how we get to gen_movsi_pic_label_ref.  Not understanding the
reason for this patch, should I modify TRY_FINALLY_EXPR/GOTO_SUBROUTE_EXPR
to work more like CLEANUP_POINT_EXPR/WITH_CLEANUP_EXPR?  I.e. without
generating a move from a LABEL_REF?

Or can anyone else see why the return_address label is getting deleted?

Jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]