This is not really me asking for guidance, but rather confirmation:
I run my Raspberry Pi 3 B+ with Ubuntu for AArch64. Thus it takes full advantage of the 64-bit architecture.
However, I have tried to compile code with GCC on the Raspberry, and also cross- compilation with an AArch64 extension of GCC on my PC.
When I inspected the executable with objdump, I saw that the instructions were only 32 bit. I compared the code compiled on Ubuntu with the AArch64 -cross compilation, and they were practically identical. I then compared it with code I had earlier compiled on Raspbian and the Raspbian was quite diferent and used the ARMv7 registers and no X or W registers found on ARMv8's AArch64/32 execution modes.
So my question is, does C code always compile to the Thumb-2 instruction set which is 32-bit? Or am I not compiling the code properly?