diff options
Diffstat (limited to 'meta-efl/recipes-efl/webkit/webkit-efl/0002-ARMAssembler.h-Don-t-generate-BKPT-and-BLX-for-armv4.patch')
| -rw-r--r-- | meta-efl/recipes-efl/webkit/webkit-efl/0002-ARMAssembler.h-Don-t-generate-BKPT-and-BLX-for-armv4.patch | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/meta-efl/recipes-efl/webkit/webkit-efl/0002-ARMAssembler.h-Don-t-generate-BKPT-and-BLX-for-armv4.patch b/meta-efl/recipes-efl/webkit/webkit-efl/0002-ARMAssembler.h-Don-t-generate-BKPT-and-BLX-for-armv4.patch deleted file mode 100644 index 9f005bcd33..0000000000 --- a/meta-efl/recipes-efl/webkit/webkit-efl/0002-ARMAssembler.h-Don-t-generate-BKPT-and-BLX-for-armv4.patch +++ /dev/null | |||
| @@ -1,80 +0,0 @@ | |||
| 1 | From e284e92da00011e55d8f79383034e0c9c1a8a106 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
| 3 | Date: Thu, 27 Feb 2014 13:40:43 +0100 | ||
| 4 | Subject: [PATCH 2/3] ARMAssembler.h: Don't generate BKPT and BLX for armv4* | ||
| 5 | |||
| 6 | * I haven't tested it in runtime yet, but it's better than to wait for asm failure later: | ||
| 7 | {standard input}: Assembler messages: | ||
| 8 | {standard input}:35: Error: selected processor does not support ARM mode `bkpt #0' | ||
| 9 | {standard input}:62: Error: selected processor does not support ARM mode `blx llint_throw_stack_overflow_error' | ||
| 10 | ... | ||
| 11 | |||
| 12 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | ||
| 13 | --- | ||
| 14 | Source/JavaScriptCore/assembler/ARMAssembler.h | 19 +++++++++++++++++++ | ||
| 15 | 1 file changed, 19 insertions(+) | ||
| 16 | |||
| 17 | diff --git a/Source/JavaScriptCore/assembler/ARMAssembler.h b/Source/JavaScriptCore/assembler/ARMAssembler.h | ||
| 18 | index 087d31c..1b40ded 100644 | ||
| 19 | --- a/Source/JavaScriptCore/assembler/ARMAssembler.h | ||
| 20 | +++ b/Source/JavaScriptCore/assembler/ARMAssembler.h | ||
| 21 | @@ -211,7 +211,9 @@ namespace JSC { | ||
| 22 | LDMIA = 0x08b00000, | ||
| 23 | B = 0x0a000000, | ||
| 24 | BL = 0x0b000000, | ||
| 25 | +#if WTF_ARM_ARCH_AT_LEAST(5) | ||
| 26 | BX = 0x012fff10, | ||
| 27 | +#endif | ||
| 28 | VMOV_VFP64 = 0x0c400a10, | ||
| 29 | VMOV_ARM64 = 0x0c500a10, | ||
| 30 | VMOV_VFP32 = 0x0e000a10, | ||
| 31 | @@ -223,8 +225,10 @@ namespace JSC { | ||
| 32 | VCVT_F64_F32 = 0x0eb70ac0, | ||
| 33 | VMRS_APSR = 0x0ef1fa10, | ||
| 34 | CLZ = 0x016f0f10, | ||
| 35 | +#if WTF_ARM_ARCH_AT_LEAST(5) | ||
| 36 | BKPT = 0xe1200070, | ||
| 37 | BLX = 0x012fff30, | ||
| 38 | +#endif | ||
| 39 | #if WTF_ARM_ARCH_AT_LEAST(7) | ||
| 40 | MOVW = 0x03000000, | ||
| 41 | MOVT = 0x03400000, | ||
| 42 | @@ -689,7 +693,11 @@ namespace JSC { | ||
| 43 | |||
| 44 | void bkpt(ARMWord value) | ||
| 45 | { | ||
| 46 | +#if WTF_ARM_ARCH_AT_LEAST(5) | ||
| 47 | m_buffer.putInt(BKPT | ((value & 0xff0) << 4) | (value & 0xf)); | ||
| 48 | +#else | ||
| 49 | + // BKPT is available in ARMv5T and above, skip it here | ||
| 50 | +#endif | ||
| 51 | } | ||
| 52 | |||
| 53 | void nop() | ||
| 54 | @@ -704,12 +712,23 @@ namespace JSC { | ||
| 55 | |||
| 56 | void bx(int rm, Condition cc = AL) | ||
| 57 | { | ||
| 58 | +#if WTF_ARM_ARCH_AT_LEAST(5) | ||
| 59 | emitInstruction(toARMWord(cc) | BX, 0, 0, RM(rm)); | ||
| 60 | +#else | ||
| 61 | + // BX is available in ARMv5T and above. | ||
| 62 | + emitInstruction(toARMWord(cc) | MOV, ARMRegisters::pc, ARMRegisters::lr, 0); | ||
| 63 | +#endif | ||
| 64 | } | ||
| 65 | |||
| 66 | AssemblerLabel blx(int rm, Condition cc = AL) | ||
| 67 | { | ||
| 68 | +#if WTF_ARM_ARCH_AT_LEAST(5) | ||
| 69 | emitInstruction(toARMWord(cc) | BLX, 0, 0, RM(rm)); | ||
| 70 | +#else | ||
| 71 | + // BLX is available in ARMv5T and above. | ||
| 72 | + emitInstruction(toARMWord(cc) | MOV, ARMRegisters::lr, ARMRegisters::pc, 0); | ||
| 73 | + emitInstruction(toARMWord(cc) | MOV, ARMRegisters::pc, RM(rm), 0); | ||
| 74 | +#endif | ||
| 75 | return m_buffer.label(); | ||
| 76 | } | ||
| 77 | |||
| 78 | -- | ||
| 79 | 1.9.0 | ||
| 80 | |||
