Aside from all the mathematical properties an ordinal type must comply with, in programming, there is a usually unspoken/unstated rule that an ordinal type must fit entirely in a CPU register.
Because of this, in 64 bit programming, an int64 or a qword is considered an ordinal type whereas neither of those two types are considered ordinals in 32 bit programming.
For instance, in FPC, a "for" loop can use an int64 or qword as a loop index in 64 bit but cannot in 32 bit. The reason ?... simply register size, neither one of them fits in 32 bits which is the register width of a 32 bit architecture.