rts: Interpreter.c - Fix casts for `SIZED_BIN_OP_TY_INT`
## Summary
We use this macro to define operations like shifts, where the second argument is `Int#`.
However it seems I defined it as:
```
// op :: ty -> Int -> ty
#define SIZED_BIN_OP_TY_INT(op,ty) \
{ \
if(sizeof(ty) > sizeof(StgWord)) { \
ty r = ((ty) ReadSpW64(0)) op ((ty) ReadSpW(2)); \
Sp_addW(1); \
SpW64(0) = (StgWord64) r; \
} else { \
ty r = ((ty) ReadSpW(0)) op ((ty) ReadSpW(1)); \
Sp_addW(1); \
SpW(0) = (StgWord) r; \
}; \
goto nextInsn; \
}
```
I believe this produces valid results for all operations we currently implement. However it's confusing
that we use `ty r = ((ty) ReadSpW(0)) op ((ty) ReadSpW(1));` instead of `ty r = ((ty) ReadSpW(0)) op ((StgInt) ReadSpW(1));` which as I remember was my intention!
But as far as I know it doesn't cause any issues so it's not a high priority to fix.
## Expected behavior
What do you expect the reproducer described above to do?
## Environment
* GHC version used:
Optional:
* Operating System:
* System Architecture:
issue