illegal use of frame pointer (r31) in statement level assembler - mingw32-make: ***

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

illegal use of frame pointer (r31) in statement level assembler - mingw32-make: ***

2,908 次查看
afleury
Contributor II

When compiling a project with CW PA, I get this error:  illegal use of frame pointer (r31) in statement level assembler / mingw32-make: ***.  In fact, in a C-file, there are parts in Assembly. In those parts, we manipulate the registers. And it seems that CodeWarrior doesn't accept such manipulations on r31. It there a way to bypass this verification?

Just to clarify the situation, I started the project with source code for WindRiver compiler. We are looking to switch with CodeWarrior. Our current processor is P1020, which is at the end of life. We target to replace it with T1024 (Power Architecture).  In the WindRiver documentation, there is a whole chapiter for the calling conventions. There isn't such chapiter in this document "CodeWarrior Development Studio for Power Architecture Processors Build Tools Reference Manual". Is there a document giving details for the CW PA Calling Conventions?

Thanks in advance for your help,

0 项奖励
回复
2 回复数

2,865 次查看
yipingwang
NXP TechSupport
NXP TechSupport

Would you please provide your C source file to cause the compile issue?

Please refer to the attached document for the compiler.

 

0 项奖励
回复

2,859 次查看
afleury
Contributor II

Hi yipingwang,

A work colleague had already worked on this problem before me and he took the initiative to replace r31 by r29 and r30 by r28. That's what I did myself. However, I would like to know which registers I can use for future reference.

Please refer to the attached c-file for the single C function with assembly parts

0 项奖励
回复