You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 5200 Reporter: is Assigned to: meurer Status: closed (set by @xavierleroy on 2015-12-11T18:04:27Z) Resolution: not a bug Priority: normal Severity: major Version: 3.12.0 Category: ~DO NOT USE (was: OCaml general) Tags: arm Monitored by: is mehdi
Bug description
The ARM code uses "bx Rn" / "bx LR" to return to callers or call external functions. This is nice on Thumb-aware CPUs, because it allows to return to/call thumb code in these situations. However, bx is not available on thumbless CPUs like SA-110 (or any without the suffix "T").
For NetBSD/arm I've patched by replacing "bx Rn" with "mov PC,Rn". Patch files are appended. However, I think that you'll want some option to build either the one or the other version, else mixed thumb/arm code wouldn't interwork with OCaml... maybe introduce "armt" for the Thumb-aware variant?
For ARM code to be EABI compliant we have to use BX (EABI requires interworking). It is the job of the linker to replace BX Rn with MOV PC, Rn when running on a pre-ARMv5T CPU.
Is this issue still relevant? Which NetBSD ARM port are you talking about exactly?
Original bug ID: 5200
Reporter: is
Assigned to: meurer
Status: closed (set by @xavierleroy on 2015-12-11T18:04:27Z)
Resolution: not a bug
Priority: normal
Severity: major
Version: 3.12.0
Category: ~DO NOT USE (was: OCaml general)
Tags: arm
Monitored by: is mehdi
Bug description
The ARM code uses "bx Rn" / "bx LR" to return to callers or call external functions. This is nice on Thumb-aware CPUs, because it allows to return to/call thumb code in these situations. However, bx is not available on thumbless CPUs like SA-110 (or any without the suffix "T").
For NetBSD/arm I've patched by replacing "bx Rn" with "mov PC,Rn". Patch files are appended. However, I think that you'll want some option to build either the one or the other version, else mixed thumb/arm code wouldn't interwork with OCaml... maybe introduce "armt" for the Thumb-aware variant?
File attachments
The text was updated successfully, but these errors were encountered: