Adds missing store for next_tag and last_exit linkstub in target_delete_entry IBL gencode, which is invoked after IBT resize on ARM32 and AArch64. After IBT resize, the IBT payloads are replaced with the target_delete_entry gencode address to induce a cache exit, and safely nullify the table.
Sets last_exit to &linkstub_ibt_deleted in target_delete_entry. This is to allow stats collection for the count of fcache exits where the indirect branch target was deleted but also a hit in IBL.
Removes the -shared_ibt_table_bb_init workaround for ibl-stress test on AArch64, which was required to avoid the buggy IBT resize.
Verified locally that the ibl-stress-aarch64-far-link_LONG test also works without the workaround after this fix. Manual local verification was required as this long test is not enabled in the regular suite.
Also fixes some bugs on this path in ARM. Sets the Thumb LSB bit for the target_delete entry targets stored in IBL entries. Avoids redoing insert_mode_change_handling for the target_delete_entry path.
Fixes: #4665 (closed)
Co-authored-by: Derek Bruening bruening@google.com