Apologies, we needed 2 hash maps, one for object -> literal location and one String -> literal location to fix the problem that the former map is an identity map and the latter not. I think there are 2 fixes:
1) bump the size up of the boot image 
2) switch from using maps to find literals to a search of the JTOC. We've talked about doing this in the past. Searching the JTOC is rare so hopefully the speed difference between a map and a search is small. We'd need to order items in the JTOC into references that are literals and ones that are static fields.
(a guess as to why this didn't effect PPC32 is that the reference sizes are smaller, maybe compressed references would save the day)
Apologies, we needed 2 hash maps, one for object -> literal location and one String -> literal location to fix the problem that the former map is an identity map and the latter not. I think there are 2 fixes:
1) bump the size up of the boot image
2) switch from using maps to find literals to a search of the JTOC. We've talked about doing this in the past. Searching the JTOC is rare so hopefully the speed difference between a map and a search is small. We'd need to order items in the JTOC into references that are literals and ones that are static fields.
(a guess as to why this didn't effect PPC32 is that the reference sizes are smaller, maybe compressed references would save the day)