Loading ...
Sorry, an error occurred while loading the content.
 

PDOS asmbl with Z390 macro help

Expand Messages
  • Adrian
    Hi I have started assmbling the PDOS files (from the handcrafted asms and .s files built with mvsgcc). Being contrary I am using Z390 (including a downloaded
    Message 1 of 31 , Aug 5, 2011
      Hi

      I have started assmbling the PDOS files (from the handcrafted asms and .s files built with mvsgcc). Being contrary I am using Z390 (including a downloaded zip file of MVS 3.8 macros they have) - rather than the old old MVS assembler.

      The .s files seem to asm to obj with no issues - good.

      The handcrafted asm files give (overall) the following missing MACROS. Has anyone got a zip of all these (or all the Macros in MVS) in ASCII - or do I have to start up MVS etc. etc.

      The list is:

      AMUSE
      FUNEXIT
      FUNHEAD
      GETLINE
      GO24
      GO31
      IECSDSL1
      IEFJFCBN
      IEFUCBOB
      IEZIOB
      IEZJSCB
      IHAPSA
      IHARB
      IHASVC
      IKJCPPL
      IKJECT
      IKJPTPB
      IKJTCB
      LDINT
      PUTLINE
      QBSM

      What volumes etc. should they be found in ... any hints on extracting them all.

      Cheers

      Adrian
    • kerravon86
      Perhaps it can t handle unnamed CSECTs. It is more common in assembler programming to name the CSECTs in each source file. Useless for C programming though.
      Message 31 of 31 , Aug 15, 2011
        Perhaps it can't handle unnamed CSECTs. It is more
        common in assembler programming to name the CSECTs
        in each source file.

        Useless for C programming though.

        BFN. Paul.



        --- In hercules-os380@yahoogroups.com, "Adrian" <adrian@...> wrote:
        >
        > Thanks
        >
        > I am struggling with linking - an rather worrying internal error - I need to build and debug the linker {sigh}. I will report more when I know more.
        >
        > Also, in addition, I am getting this error for all but the first OBJ file:
        >
        > warning - ignoring duplicate CSECT - $PRIVATE
        >
        > Any hints from the team welcome ... help!
        >
        > A.
        >
        > --- In hercules-os380@yahoogroups.com, "kerravon86" <kerravon86@> wrote:
        > >
        > > --- In hercules-os380@yahoogroups.com, "kerravon86" <kerravon86@> wrote:
        > > >
        > > > The &ZSYS change also required changes in the PDOS
        > > > assembler, and when I went to test that out, PDOS
        > > > wasn't working properly.
        > > >
        > > > I traced it to a memcpy(xx,xx,8) which looks like
        > > > an optimization that I've previously switched off
        > > > in GCC 3.2.3 but has raised its ugly head in 3.4.6.
        > > > So I have some work to do.
        > >
        > > It wasn't related to that, but I haven't yet got a
        > > proper resolution to the compiler bug. I do however
        > > have a workaround (below).
        > >
        > > BFN. Paul.
        > >
        > >
        > >
        > > C:\devel\gcc\gcc\config\i370>cvs diff -c
        > > cvs diff: Diffing .
        > > Index: i370.md
        > > ===================================================================
        > > RCS file: c:\cvsroot/gcc/gcc/config/i370/i370.md,v
        > > retrieving revision 1.20
        > > diff -c -r1.20 i370.md
        > > *** i370.md 2 Dec 2009 07:56:59 -0000 1.20
        > > --- i370.md 13 Aug 2011 08:25:32 -0000
        > > ***************
        > > *** 1584,1590 ****
        > > else
        > > op1 = replace_equiv_address (operands[1], copy_to_mode_reg (SImode, op1));
        > >
        > >
        > > ! if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) < 256)
        > > emit_insn (gen_rtx_PARALLEL (VOIDmode,
        > > gen_rtvec (2,
        > > gen_rtx_SET (VOIDmode, op0, op1),
        > > --- 1584,1591 ----
        > > else
        > > op1 = replace_equiv_address (operands[1], copy_to_mode_reg (SImode, op1));
        > >
        > >
        > > ! if (!((GET_CODE(op0) == MEM) && REG_P(XEXP(op0,0))) &&
        > > ! GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) < 256)
        > > emit_insn (gen_rtx_PARALLEL (VOIDmode,
        > > gen_rtvec (2,
        > > gen_rtx_SET (VOIDmode, op0, op1),
        > > ***************
        > > *** 1621,1627 ****
        > > ; Move a block that is less than 256 bytes in length.
        > >
        > > (define_insn ""
        > > ! [(set (match_operand:BLK 0 "s_operand" "=m")
        > > (match_operand:BLK 1 "s_operand" "m"))
        > > (use (match_operand 2 "immediate_operand" "I"))]
        > > "((unsigned) INTVAL (operands[2]) < 256)"
        > > --- 1622,1628 ----
        > > ; Move a block that is less than 256 bytes in length.
        > >
        > > (define_insn ""
        > > ! [(set (match_operand:BLK 0 "s_operand" "=S")
        > > (match_operand:BLK 1 "s_operand" "m"))
        > > (use (match_operand 2 "immediate_operand" "I"))]
        > > "((unsigned) INTVAL (operands[2]) < 256)"
        > >
        >
      Your message has been successfully submitted and would be delivered to recipients shortly.