~ubuntu-branches/ubuntu/trusty/apex/trusty

« back to all changes in this revision

Viewing changes to src/arch-arm/lib/muldi3.S

  • Committer: Bazaar Package Importer
  • Author(s): Oliver Grawert
  • Date: 2009-11-10 11:55:15 UTC
  • mfrom: (2.2.2 squeeze)
  • Revision ID: james.westby@ubuntu.com-20091110115515-6jjsf6rc8py35awe
Tags: 1.6.10ubuntu1
* Merge from debian testing, remaining changes:
  - Move apex VMA address to 4MiB to leave enough space for the ubuntu
  kernel and not overwrite apex in ram when loading.
  - nslu2 configuration: set CONFIG_RAMDISK_SIZE=0x0055FFF0 instead of
  0x005FFFF0 to make enough room for ubuntu initramfs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  linux/arch/arm/lib/muldi3.S
 
3
 *
 
4
 *  Author:     Nicolas Pitre
 
5
 *  Created:    Oct 19, 2005
 
6
 *  Copyright:  Monta Vista Software, Inc.
 
7
 *
 
8
 *  This program is free software; you can redistribute it and/or modify
 
9
 *  it under the terms of the GNU General Public License version 2 as
 
10
 *  published by the Free Software Foundation.
 
11
 */
 
12
 
 
13
#include <linux/linkage.h>
 
14
 
 
15
#ifdef __ARMEB__
 
16
#define xh r0
 
17
#define xl r1
 
18
#define yh r2
 
19
#define yl r3
 
20
#else
 
21
#define xl r0
 
22
#define xh r1
 
23
#define yl r2
 
24
#define yh r3
 
25
#endif
 
26
 
 
27
ENTRY(__muldi3)
 
28
ENTRY(__aeabi_lmul)
 
29
 
 
30
        mul     xh, yl, xh
 
31
        mla     xh, xl, yh, xh
 
32
        mov     ip, xl, lsr #16
 
33
        mov     yh, yl, lsr #16
 
34
        bic     xl, xl, ip, lsl #16
 
35
        bic     yl, yl, yh, lsl #16
 
36
        mla     xh, yh, ip, xh
 
37
        mul     yh, xl, yh
 
38
        mul     xl, yl, xl
 
39
        mul     ip, yl, ip
 
40
        adds    xl, xl, yh, lsl #16
 
41
        adc     xh, xh, yh, lsr #16
 
42
        adds    xl, xl, ip, lsl #16
 
43
        adc     xh, xh, ip, lsr #16
 
44
        mov     pc, lr
 
45