the
I doubt that. The PIC32 compiler is GCC, the compiler for the other PICs is Hi-tech. Porting code between them requires a lot of defines (think about types that include the bank number, interrupt service routines, pragma's, attributes, etc). And the architectural differences between PIC32 and previous PICs are too big to share code efficiently.
I tried to keep some code portable between ARM (gcc) and PIC16 but that is a no go. ARM and MIPS processors really like pointers with offsets. PIC16 does not. On ARM/MIPS it is more efficient to pass a pointer to a struct (part of an array of structs). However on PIC it is more efficient to provide an index into the array of structs. So keeping data as local as possible won't fly with PIC.
Well, the assembler I used didn't re-order the instructions.