I am working on a task to move a big project from old Codewarrior IDE to S32DS from NXP, which use a compiler of GCC 4.9. Unluckily I have big troubles to compile the inline assembley code in S32DS, since the grammar of inline assembley are quite different from codewarrior to GCC. Any ideas to solve this problem without rewrite sentence by sentence? Any quick translate tools as shortcut? Thanks!
Translate Inline Assembler of Codewarrior to GCC Inline Assembler
164 views Asked by hongtaozhang100 At
1
There are 1 answers
Related Questions in GCC
- File refuses to compile std::erase() even if using -std=g++23
- the difference between two style of inline ASM
- Why veneer code generated by gcc for cortex-m0 seems 8-byte aligned?
- How to compile the Linux kernel with -O0 for more detailed debug?
- GMP Windows installation "configure: error: could not find a working compiler"
- Unable to run get .exe file from assembly NASM
- Problem with compiling c++ project that is running python code using Python.h -> undefined reference
- How to use a newer linker and glibc in a Kotlin/Native project?
- "Config.guess failed to determine the host type" when trying build binutils-2.7 with Cygwin
- Trying to compile GCC returns a bunch of errors
- Compiling with gcc fno-common option causes performance degradation
- On cygwin I get errors containing -lintl and -liconv when running gcc
- Constant function pointer optimization
- How to obtain mingw-w64 version 9.3.0 or older for MSYS2?
- How to fix this error in terminal while writing hello world code in VS Code on C?
Related Questions in INLINE-ASSEMBLY
- the difference between two style of inline ASM
- How can I create an Inline assembly command with a multi-variable register offset?
- ASM register-variable from existing register-value in clang
- Ensuring x64 compliance of custom ASM-function in clang-cl
- Solidity Inline assembly CALL wrong result
- How can I solve the C2400 error in visual studio with a variable called ptr?
- gcc inline assembly fails for compiler option -O2
- where could there be a mistake in my assembly language code
- Why does my code for a floating point accumulator throw an exception in C with inline assembly made on visual studio?
- How to get PC of first instruction of inline asm block (C)?
- Compilation error using asm!("mov...") on aarch64
- How to multiply two integer square matrices using MSVC inline assembly in C++
- Program in C++ that calculates the sum of unsigned char array of 80 elements using MMX instructions through inline assembly programming
- Why is this inline ASM function adding the first input operand twice?
- Issues when using extended asm in C on Mac M1
Related Questions in GCC4
- How can I compile and install multiple copies of gcc into /usr/local and have the binaries in /usr/local/bin reflect their version?
- How is the address of the .rodata section determined in ELF files compiled using GCC and ld?
- Assembler error in MIPS build of Boost.Test program
- undefined reference to `__gnu_cxx::__exchange_and_add(int*, int)'
- Declaring and initializing a completely `const` `char *argv[]`
- Why does a virtual destructor write to memory?
- C++ implicit conversion and universal forwarding on gcc 7.5
- how to hide local symbol for linux static library
- Check wheter atomic ptr is not initialized in gcc 4.4.7 (without nullptr)
- Clarification required on gcc option -mcmodel=medium
- is there any way to use google test tool on gcc 4.5.2 compiler?
- How to control or optimize or remove or deallocate unused memory in UNION's
- Translate Inline Assembler of Codewarrior to GCC Inline Assembler
- problem compiling with different gcc versions
- Puzzling introduction of temporary in `* const&` on older C++ compilers
Related Questions in NXP-MICROCONTROLLER
- MKL02Z32xxx4 (FRDM-KL02Z Board) Timer overflow interrupt not firing
- Can't get watchdog to kick on freeRTOS application using S32K mcu
- IMX8Mmini firmware upgrade with fallback mechanism
- Is it possible to emulate nfc tag via adb tools?
- Optimizing Python Blob Detection and Tracking for Performance on NXP's IMX8M Plus Board
- Force .bss section to be in last program header
- J-Link script to flash program in S32K144 (allow security)
- How to write large amount of data to sd card?
- How to implement ThreadX's ppp_byte_send for NXP MIMXRT1040-EVK
- JLink RTT Driver
- FlexNVM Data Corruption When Power Cuts Off During Data Write
- Particular experience with using different MCUs from different vendors
- Error 69 82 when doing APDU verify instruction with biometric
- MCU Espresso: Program behave unexpectedly when compiled using a different offset than 0x00
- NXP rt1064 Changing code location in XIP Flash causes program failure
Related Questions in CODEWARRIOR
- How do I use an external library path with C project in Neovim?
- Read Flash Memory using PEmicro and CodeWarrior IDE (MC9S12XET256 MCU)
- How do I account for the spaces in the code?
- How should I write my C code to have the resulting assembly use extra dsll32 and dsra32 instructions?
- Where does CodeWarrior keep rsp values?
- How to determine offset values when disassembly?
- TypeError: Cannot read property 'toUpperCase' of undefined |CodeWars|
- Need to return array of the top-3 most occurring words. (codewars )
- Sum of variabels from each for loop iterations
- Food Ranking List Challenge (TestDome)
- Receiving an exit code error on codewars when trying to manipulate a string
- Why is this code removing `False` from the array?
- Loop is stuck for some reason and then finally returns undefined
- What is the code to print text into a new line on assembly code, on HCS12 microcontroller using CodeWarrior?
- String incrementer codewars (Ruby) problem
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Your choices include porting to pure C (often best for inline asm that was a performance optimization for old bad compilers but which modern compilers can do on their own. Or which isn't relevant on another ISA).
Otherwise yes, you'd have to port to either standalone asm functions, or GNU C inline asm syntax. Stand-alone asm functions avoids having to get all the constraints right, and might be a good option for larger blocks.
Asm to asm translation don't typically exist, especially not to GNU C inline asm. (Or at least I've never seen anyone mention one on Stack Overflow).
BTW, GCC4.9 is pretty old. GCC7 and 8 have some nice new optimization capabilities, e.g. load/store coalescing (multiple narrow struct or array members loaded/stored with one full-register width load or store). I'd recommend starting with a current GCC version when you don't already have a working codebase so there's no risk of compiler changes introducing regressions.
Also, GCC6 introduced flag output operands from inline asm: a branch condition can be a boolean output from the asm.