thumb

objdump and ARM vs Thumb

三世轮回 提交于 2019-12-05 22:30:21
问题 I'm trying to disassemble an object built for ARM with gcc. Unfortunately, objdump is trying to guess whether the code is ARM and Thumb, and is getting it wrong: it thinks my code is Thumb when it's actually ARM. I see that objdump has an option to force it to interpret all instructions as Thumb ( -Mforce-thumb ), but it doesn't have one to force ARM mode! This seems like a really weird omission to me, and it's seriously hampering my ability to get work done (I'm on an embedded device and my

iPhone compile for thumb

早过忘川 提交于 2019-12-04 19:45:35
问题 I've heard it might be a good idea to turn off "compile for thumb" in an iPhone target's settings to increase performance. I'm having some trouble finding this setting though. Since I couldn't find it in my current project, I decided to make a new one (where I could find and set it), and copy my files over to it (and also update all libs I'm using at the same time). But now it seems like this setting has disapperad from this new project also. No matter what SDK I choose, simulator or device,

Apple AS and ARM/Thumb ADDS instruction

爱⌒轻易说出口 提交于 2019-12-04 18:05:17
I'm working on an iPhone/iPad project, and I want to update the status register during some (not all) arithmetic operations. By default, Xcode uses 'Compile for Thumb' and I don't want to change it. The following GCC inline assembly code works fine under ARM, but results in a compile error under Thumb: 'instruction not supported in Thumb16 mode - adds r6,r4,r5'. The problem lies in the status register update. (I'm also aware that movcs and strcs will need to be changed). Does Thumb have an ADD instruction which sets Overflow (V) or Carry (C) in the CPSR? If not, are there Thumb-specific

Decoding BLX instruction on ARM/Thumb (IOS)

隐身守侯 提交于 2019-12-04 13:13:16
I've read through much of the ARM documentation but still having trouble decoding a BLX instruction. Here are two examples: __text:0000347C 02 F0 B2 ED BLX _objc_msgSend __text:0000469C 01 F0 A2 EC BLX _objc_msgSend Both of these are supposed to go to the same place, virtual address 0x5FE4 as seen here: __symbolstub1:00005FE4 38 F0 9F E5 LDR PC, =__imp__objc_msgSend However, I can't figure out what calculation is used to get from the above two addresses (0x347C and 0x469C) using their instruction bytes. According to the ARM documentation its supposed to be a relative jump, using a right shift

objdump and ARM vs Thumb

允我心安 提交于 2019-12-04 03:17:50
I'm trying to disassemble an object built for ARM with gcc. Unfortunately, objdump is trying to guess whether the code is ARM and Thumb, and is getting it wrong: it thinks my code is Thumb when it's actually ARM. I see that objdump has an option to force it to interpret all instructions as Thumb ( -Mforce-thumb ), but it doesn't have one to force ARM mode! This seems like a really weird omission to me, and it's seriously hampering my ability to get work done (I'm on an embedded device and my only means of debugging is to look at the disassembly). I've tried various approaches, including trying

iPhone compile for thumb

元气小坏坏 提交于 2019-12-03 12:45:25
I've heard it might be a good idea to turn off "compile for thumb" in an iPhone target's settings to increase performance. I'm having some trouble finding this setting though. Since I couldn't find it in my current project, I decided to make a new one (where I could find and set it), and copy my files over to it (and also update all libs I'm using at the same time). But now it seems like this setting has disapperad from this new project also. No matter what SDK I choose, simulator or device, the setting will not show up in the target settings! I do seem however to still have a variable called

how to compile and link rust code into an android apk packed application

谁都会走 提交于 2019-12-03 07:18:45
问题 I'm trying to add Rust code to an android NDK sample (native-activity); Whenever I link Rust code (compiled as a .a) into the .so , it fails to run. I went on information from here to get an android aware rust compiler and 'standalone toolchain' https://github.com/mozilla/rust/wiki/Doc-building-for-android Someone was suggesting on the Rust IRC channel that I need to mention 'thumb' somewhere; is there an option to pass to rustc, or did I have to build it all differently in the first place? I

ARM vs Thumb performance on iPhone 3GS, non floating point code

£可爱£侵袭症+ 提交于 2019-12-03 04:14:51
问题 I was wondering if anyone had any hard numbers on ARM vs Thumb code performance on iPhone 3GS. Specifically for non-floating point (VFP or NEON) code - I'm aware of the issues with floating point performance in Thumb mode. Is there a point where the extra code size of bigger ARM instructions becomes a performance hazard? In other words, if my executable code is relatively small compared to available memory, is there any measured performance difference to turning Thumb mode on? The reason I

What is the ARM Thumb Instruction set?

谁都会走 提交于 2019-12-03 02:14:31
问题 under "The Thumb instruction set" in section 1-34 of "ARM11TechnicalRefManual" it said that: "The Thumb instruction set is a subset of the most commonly used 32-bit ARM instructions.Thumb instructions are 16 bits long,and have a corresponding 32-bit ARM instruction that has the same effect on processor model." can any one explain more about this especially second sentence and say how does processor perform it? 回答1: The ARM processor has 2 instruction sets, the traditional ARM set, where the

ARM vs Thumb performance on iPhone 3GS, non floating point code

坚强是说给别人听的谎言 提交于 2019-12-02 17:33:39
I was wondering if anyone had any hard numbers on ARM vs Thumb code performance on iPhone 3GS. Specifically for non-floating point (VFP or NEON) code - I'm aware of the issues with floating point performance in Thumb mode. Is there a point where the extra code size of bigger ARM instructions becomes a performance hazard? In other words, if my executable code is relatively small compared to available memory, is there any measured performance difference to turning Thumb mode on? The reason I ask is that while I can enable ARM for the NEON specific source files in Xcode using the "-marm" option,