Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6750671
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T12:50:06+00:00 2026-05-26T12:50:06+00:00

I have a library written in C mixed mixed with some assembly for ARM.

  • 0

I have a library written in C mixed mixed with some assembly for ARM. It used to be compiled for armv6. Now I am trying to upgrade it to armv7. However, there is an interrupt handler which has the instruction stmdb sp!, {pc} which is not allowed in armv7. What would be an equivalent instruction on armv7? I tried str r15, [sp, #-4]! but that doesn’t work.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T12:50:07+00:00Added an answer on May 26, 2026 at 12:50 pm

    There’s specific limitations regarding the use of PC in the reg list for PUSH and POP instructions, depending on the operation mode, see:

    ARM Instruction Set Reference, PUSH/POP

    Specifically, in Thumb[2] there is no push {pc} operation (which is the same as saying there’s no stmfd sp!, {pc} operation – push is mapped to stmfd sp!).

    So if you’re compiling your kernel code (why else do you have/need an interrupt handler if it’s not kernel code), check whether you’re compiling a Thumb-2 kernel.

    That said, you’re saying you encountered a stmfd sp!,{pc} instruction – you’re sure that’s not a typo ? stmfd sp!,{lr} (and its sibling, ldmfd sp!, {pc} – here PC is present) is normal / fully legal and often required / encountered in both ARM mode and Thumb-2 mode. But that actually is the purpose of saving the program counter to the stack ? What can one do with that that wouldn’t be achievable in other ways ?

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a class library with some extension methods written in C# and an
I have a dynamic link library written in VC++6. I wrote some code with
I have a library that was written using nHibernate and I am trying to
I have compiled a library(GDAL) written in C/C++ with Ruby bindings. After a ran
I have a library written in C that I would like to use in
I have a library written in C++/CLI and I want to open it up.
I have a static library written in C++ and I have a structure describing
I have a dynamic linked library written in C# 3.0. This library has a
I have a date picker library written for MooTools that I want to port
In physics library written in C# I have the following code: (in ContactManager.cs) public

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.