The jump table code added a register to itself twice to multiply by 4;
shift the register left by 2 instead.
.long .Lretstruct4b-.Lstore_table /* FFI_TYPE_SMALL_STRUCT_4B */
.long .Lretstruct-.Lstore_table /* FFI_TYPE_MS_STRUCT */
1:
- add %ecx, %ecx
- add %ecx, %ecx
+ shl $2, %ecx
add (%esp),%ecx
mov (%ecx),%ecx
add (%esp),%ecx
.long .Lcls_retmsstruct-.Lcls_store_table /* FFI_TYPE_MS_STRUCT */
1:
- add %eax, %eax
- add %eax, %eax
+ shl $2, %eax
add (%esp),%eax
mov (%eax),%eax
add (%esp),%eax
.long .Lrcls_retstruct4-.Lrcls_store_table /* FFI_TYPE_SMALL_STRUCT_4B */
.long .Lrcls_retstruct-.Lrcls_store_table /* FFI_TYPE_MS_STRUCT */
1:
- add %eax, %eax
- add %eax, %eax
+ shl $2, %eax
add (%esp),%eax
mov (%eax),%eax
add (%esp),%eax
.long .Lscls_retstruct2-.Lscls_store_table /* FFI_TYPE_SMALL_STRUCT_2B */
.long .Lscls_retstruct4-.Lscls_store_table /* FFI_TYPE_SMALL_STRUCT_4B */
1:
- add %eax, %eax
- add %eax, %eax
+ shl $2, %eax
add (%esp),%eax
mov (%eax),%eax
add (%esp),%eax