On a GXP crankset the wavy washer should go on the drive side. The non-drive side is supposed to be torqued up such that it is firmly clamped in place against the bearing. The shaft has a step in it that goes against one side of the bearing so it can't move further that way and then the crank arm gets squashed against it on the other side so that there's no way it can move in either direction. If you've got play there then something is wrong. The wavy washer then goes the other side with sufficient spacers to keep pressure on the bearing the other side so that the bearing cups shouldn't be able to work loose.
I think this is one job you really need a torque wrench for. Torque up the 8mm hex bolt to 48-54Nm, which is quite a lot. Note there's a bigger hex bolt but that isn't for tightening the crank.