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]>