beehive-lab / mambo

A low-overhead dynamic binary instrumentation and modification tool for ARM (both AArch32 and AArch64 support) and RISC-V (RV64GC).
Apache License 2.0
318 stars 69 forks source link

test/load_store.S: fix pseudo-instructions on AArch32 #71

Closed umarcor closed 2 years ago

umarcor commented 2 years ago

https://github.com/GuillermoCallaghan/mambo/pull/8#discussion_r776340961 The error is coming from the assembler, which is no understanding vpush and vpop. It seem that at some point the understanding of the pseudo-instructions (at least vpush and vpop) was changed. The pseudo-instructions were understood fine on older versions of gcc (Bug#929155: An Odd Error Message on GNU assembler).

https://github.com/GuillermoCallaghan/mambo/pull/8#issuecomment-1002617934 In order to make the load_store test work for AArch32 we need to change the pseudo-instructions (vpush and vpop) for the actual instructions they alias as they are understood by the assembler.

(...)

Once compiled, if the binary is disassembled, they are shown correctly as the pseudo-instructions (vpush and vpop):

GuillermoCallaghan commented 2 years ago

It seems that it was changed some time ago, at least from to 2.35.1 this is happening, check here