On Sat, 13 Jul 2002, Tom Hughes wrote:

> Of course... The attached patch should handle that I think...
This patch is breaking several Solaris 32-bit tests.  The following
assembly (from t/pmc/perlarray1.pbc):

        new P0,.PerlArray
        set P0,0
        set I0,P0
        print I0
        print "\n"

        set P0,1
        set I0,P0
        print I0
        print "\n"

        set P0,5
        set I0,P0
        print I0
        print "\n"

        end

Is assembling to this (with this patch installed):

#
# Disassembly of Parrot Byte Code from 't/pmc/perlarray1.pbc'
#
# Segments:
#
#   * Wordsize:        1 bytes
#   * Byteorder:        1 bytes
#   * Major:        1 bytes
#   * Minor:        1 bytes
#   * Flags:        1 bytes
#   * FloatType:        1 bytes
#   * Unused:       10 bytes
#   * Magic Number:        8 bytes
#   * Opcode Type:        8 bytes
#   * Fixup Table:         0 bytes
#   * Const Table:        64 bytes
#   * Byte Code:         272 bytes (34 opcode_ts)
#
# Constant  Type          Data
# --------  ------------  ------------------------------
#        0  PFC_STRING    "\n"
#
# WORD     BYTE         BYTE CODE                                         LABEL   
OPERATION        ARGUMENTS
# -------- ----------   ------------------------------------------------  ------  
---------------  --------------------
  00000000 [00000000]:  00000751  00000000  00000005                              
loadlib          P0, S5
  00000006 [00000024]:  00000088  00000000  00000000                              set  
            P0, 0
  00000012 [00000048]:  00000093  00000000  00000000                              set  
            I0, P0
  00000018 [00000072]:  00000019  00000000                                        
print            I0
  00000022 [00000088]:  00000024  00000000                                        
print            [sc:0]
  00000026 [00000104]:  00000088  00000000  00000001                              set  
            P0, 1
  00000032 [00000128]:  00000093  00000000  00000000                              set  
            I0, P0
  00000038 [00000152]:  00000019  00000000                                        
print            I0
  00000042 [00000168]:  00000024  00000000                                        
print            [sc:0]
  00000046 [00000184]:  00000088  00000000  00000005                              set  
            P0, 5
  00000052 [00000208]:  00000093  00000000  00000000                              set  
            I0, P0
  00000058 [00000232]:  00000019  00000000                                        
print            I0
  00000062 [00000248]:  00000024  00000000                                        
print            [sc:0]
  00000066 [00000264]:  00000000                                                  end

When I roll back the patch, this is how it (correctly) disassembles:

#
# Disassembly of Parrot Byte Code from 't/pmc/perlarray1.pbc'
#
# Segments:
#
#   * Wordsize:        1 bytes
#   * Byteorder:        1 bytes
#   * Major:        1 bytes
#   * Minor:        1 bytes
#   * Flags:        1 bytes
#   * FloatType:        1 bytes
#   * Unused:       10 bytes
#   * Magic Number:        8 bytes
#   * Opcode Type:        8 bytes
#   * Fixup Table:         0 bytes
#   * Const Table:        64 bytes
#   * Byte Code:         272 bytes (34 opcode_ts)
#
# Constant  Type          Data
# --------  ------------  ------------------------------
#        0  PFC_STRING    "\n"
#
# WORD     BYTE         BYTE CODE                                         LABEL   
OPERATION        ARGUMENTS
# -------- ----------   ------------------------------------------------  ------  
---------------  --------------------
  00000000 [00000000]:  00000725  00000000  00000005                              new  
            P0, 5
  00000006 [00000024]:  00000088  00000000  00000000                              set  
            P0, 0
  00000012 [00000048]:  00000093  00000000  00000000                              set  
            I0, P0
  00000018 [00000072]:  00000019  00000000                                        
print            I0
  00000022 [00000088]:  00000024  00000000                                        
print            [sc:0]
  00000026 [00000104]:  00000088  00000000  00000001                              set  
            P0, 1
  00000032 [00000128]:  00000093  00000000  00000000                              set  
            I0, P0
  00000038 [00000152]:  00000019  00000000                                        
print            I0
  00000042 [00000168]:  00000024  00000000                                        
print            [sc:0]
  00000046 [00000184]:  00000088  00000000  00000005                              set  
            P0, 5
  00000052 [00000208]:  00000093  00000000  00000000                              set  
            I0, P0
  00000058 [00000232]:  00000019  00000000                                        
print            I0
  00000062 [00000248]:  00000024  00000000                                        
print            [sc:0]
  00000066 [00000264]:  00000000                                                  end

I didn't roll it back in CVS (yet) because it's probably a small glitch
but I didn't investigate to thouroghly (yet).

- D

<[EMAIL PROTECTED]>

Reply via email to