summaryrefslogtreecommitdiffstatshomepage
path: root/scripts/minimaws/lib/assets/digest.js
diff options
context:
space:
mode:
author Vas Crabb <cuavas@users.noreply.github.com>2025-03-17 05:02:39 +1100
committer GitHub <noreply@github.com>2025-03-17 05:02:39 +1100
commitd7d7a4c46c14ae4aa06a289c49f351aeb234d6dc (patch)
tree7651694873cc537cb42afc8a616d2b3b10245953 /scripts/minimaws/lib/assets/digest.js
parent8d7167a901eeb050bac5d82554959f269e507c49 (diff)
cpu/drcbearm64.cpp: Optimised conditional operations using carry flag. (#13484)
Track the state of the native carry flag to avoid unnecessarily manipulating the native NZCV register. If the native carry flag does not correspond to the UML carry flag, test the bit in the flags register for the C and NC conditions. Use condition select instructions to implement conditional forms of MOV and FMOV when advantageous. Fixed EXIT with C/NC/A/BE condition not working properly if it doesn't immediately follow a CMP or SUB. Extended reach of conditional EXIT to +/-128MiB (was +/-1MiB for conditions other than U/NU). Moved code to set up skipping conditional instructions to a common function. Use TBZ/TBNZ for short backward jumps with U/NU/C/NC conditions to save one instruction and a temporary register. Simplified/optimised ADD[C]/SUB[B] code generation - avoids an unnecessary register copy when one operand is in memory and the other is a small immediate value. Also fixed another unnecessary register copy for SUB[B] when an operand is kept in a host register. Slightly optimised generated code for AND immediate.
Diffstat (limited to 'scripts/minimaws/lib/assets/digest.js')
0 files changed, 0 insertions, 0 deletions