Username or EmailPassword
Yes, of course. I think we've misunderstood each other. All I'm saying is that if you've got blocks in your cache that are a fixed size and you're using a 64-bit quantity as opposed to a 32-bit quantity you'll use up more blocks holding the 64 bit data. Assume that your cache line holds a number of 64-byte blocks. If you're using 64-bit quantities you can old hold 8 words/block (64-bit words), but if you're using 32-bit quantities your cache block can hold 16 words (32-bit words). If you could previously store 16 32-bit items, now you can only store 8 64-bit items, your per/item ability to use the cache has decreased. You're right that the size itself has not decreased, but you can now hold fewer items. Obviously the 8 64-bit quantities are size equivalent to the 16 32-bit ones, but you've halved you're ability to access objects in the cache.
Yes what you just described is true to a certain extent. However, in practice every data type on a 64-bit binary is not 64-bit only. 64-bit binaries might have 8,16,32 bit data objects in them and caches do allow you to address a byte in a cache line. All I am getting at is that it is not very accurate to say that 64-bit addressing automatically yields poorer performance due to higher cache-misses than a 32-bit binary. It is possible in the scenario you describe above.
In reality not every one who codes a 64-bit program makes all the data 64-bit quantities.