else if (bridgeParameterMappingRequired) {
else if (bridgeParameterMappingRequired) {  if (VM.TraceStkMaps) { VM.sysWrite("getNextReferenceAddress: bridgeTarget="); VM.sysWrite(bridgeTarget); VM.sysWrite("\n"); }
   getNextReferenceAddress()      {      if (mapId < 0)         mapOffset = maps.getNextJSRRef(mapOffset);      else         mapOffset = maps.getNextRef(mapOffset, mapId);      if (VM.TraceStkMaps)         {         VM.sysWrite("VM_BaselineGCMapIterator getNextReferenceOffset = ");         VM.sysWrite(mapOffset);         VM.sysWrite(".\n");         if (mapId < 0)             VM.sysWrite("Offset is a JSR return address ie internal pointer.\n");         }      if (mapOffset != 0)        return (framePtr + mapOffset);      else if (bridgeParameterMappingRequired)         {      // VM.sysWrite("getNextReferenceAddress: bridgeTarget="); VM.sysWrite(bridgeTarget); VM.sysWrite("\n");         	 if (!bridgeRegistersLocationUpdated)            {            // point registerLocations[] to our callers stackframe            //            int location = framePtr + VM_Compiler.getFrameSize(currentMethod);            location -= (LAST_NONVOLATILE_FPR - FIRST_VOLATILE_FPR + 1) * 8; 						// skip non-volatile and volatile fprs            for (int i = LAST_NONVOLATILE_GPR; i >= FIRST_VOLATILE_GPR; --i)                registerLocations[i] = location -= 4;            bridgeRegistersLocationUpdated = true;            }         // handle implicit "this" parameter, if any         //         if (bridgeParameterIndex == -1)            {            bridgeParameterIndex   += 1;            bridgeRegisterIndex    += 1;            bridgeRegisterLocation += 4;            return bridgeRegisterLocation - 4;            }                  // now the remaining parameters         //         for (;;)            {            if (bridgeParameterIndex == bridgeParameterTypes.length || bridgeRegisterIndex > LAST_VOLATILE_GPR)               {               bridgeParameterMappingRequired = false;               break;               }            VM_Type bridgeParameterType = bridgeParameterTypes[bridgeParameterIndex++];            if (bridgeParameterType.isReferenceType())               {               bridgeRegisterIndex    += 1;               bridgeRegisterLocation += 4;               return bridgeRegisterLocation - 4;               }            else if (bridgeParameterType.isLongType())               {               bridgeRegisterIndex    += 2;               bridgeRegisterLocation += 8;               }            else if (bridgeParameterType.isDoubleType() || bridgeParameterType.isFloatType())               { // no gpr's used               }            else                { // boolean, byte, char, short, int               bridgeRegisterIndex    += 1;               bridgeRegisterLocation += 4;               }            }         }            return 0;      }