1. имеется плата tionPRO v1 с c процессором ep9315-CBZ EFWAE2BH0633 2. собрал компиллер gcc 4.4.0..20080905 с поддержкой arm920t SoftFP FPA 3. код ; //------------------------------------------------ #include <stdio.h> #include <math.h> volatile double x , y , z ; int main() { printf ("helow from GCC 4.4.0 snapshot\n") ; x = 2.0 ; y = 4.2 ; z = 0.33 ; asm volatile ("nop"); x = (x - 4.2 ) * z ; asm volatile ("nop"); printf("result %f\n" , x ) ; return 1; } //------------------------------------------------ 4. дизасм откомпиленного бинарника касательно main();
0: e92d4800 push {fp, lr} 4: e28db004 add fp, sp, #4 ; 0x4 8: e59f0084 ldr r0, [pc, #132] ; 94 <main+0x94> c: ebfffffe bl 0 <puts> 10: e59f3080 ldr r3, [pc, #128] ; 98 <main+0x98> 14:ee00818a mvfd f0, #2.0 18:ed838100 stfd f0, [r3] 1c: e59f3078 ldr r3, [pc, #120] ; 9c <main+0x9c> 20:ed9f8117 ldfd f0, [pc, #92] 24:ed838100 stfd f0, [r3] 28:e59f3070 ldr r3, [pc, #112] ; a0 <main+0xa0> 2c: ed9f8116 ldfd f0, [pc, #88] 30:ed838100 stfd f0, [r3] 34:e1a00000 nop (mov r0,r0) 38:e59f3058 ldr r3, [pc, #88] ; 98 <main+0x98> 3c: ed939100 ldfd f1, [r3] 40:ed9f810f ldfd f0, [pc, #60] 44:ee211180 sufd f1, f1, f0 48:e59f3050 ldr r3, [pc, #80] ; a0 <main+0xa0> 4c: ed938100 ldfd f0, [r3] 50:ee110180 mufd f0, f1, f0 54:e59f303c ldr r3, [pc, #60] ; 98 <main+0x98> 58:ed838100 stfd f0, [r3] 5c: e1a00000 nop (mov r0,r0) 60:e59f3030 ldr r3, [pc, #48] ; 98 <main+0x98> 64:ed938100 ldfd f0, [r3] 68:e59f0034 ldr r0, [pc, #52] ; a4 <main+0xa4> 6c: ed2d8102 stfd f0, [sp, #-8]! 70:e8bd0006 pop {r1, r2} 74:ebfffffe bl 0 <printf> 78:e3a03001 mov r3, #1 ; 0x1 7c: e1a00003 mov r0, r3 80:e8bd8800 pop {fp, pc} 84:4010cccc .word 0x4010cccc 88:cccccccd .word 0xcccccccd 8c: 3fd51eb8 .word 0x3fd51eb8 90:51eb851f .word 0x51eb851f ... a4: 00000010 .word 0x00000010 //---------------------------------------------------------------------------------
как видите тут присутствуют команды mvfd ldfd mufd stfd и соответствующие регистпы f0,f1...
5. заливаю в Тион пускаю программу, она как ни вчем небывало выдает правильный результат -0.726 6. делаю асмовские вставки с инструкциями maverick crunch - процессор выдает эксепшен illegal instruction, сопроцессор естественно поднят в работу ядром linux
7. я в просрации - либо я дурак, либо я понятия не имею про 920T либо чудеса. прошу объяснить какой модудь процессора эти инструкции выполняет????
объсните пожалуйста
|