[PATCH] Create android x86_32 and x86_64 target info

Rafael EspĂ­ndola rafael.espindola at gmail.com
Wed Mar 18 07:04:13 PDT 2015


needs testcase.

On 18 March 2015 at 09:58, Tamas Berghammer <tberghammer at google.com> wrote:
> Add android x86_64 target info
>
>
> http://reviews.llvm.org/D8357
>
> Files:
>   lib/Basic/Targets.cpp
>
> Index: lib/Basic/Targets.cpp
> ===================================================================
> --- lib/Basic/Targets.cpp
> +++ lib/Basic/Targets.cpp
> @@ -6585,6 +6585,30 @@
>  };
>  } // end anonymous namespace.
>
> +namespace {
> +// x86_32 Android target
> +class AndroidX86_32TargetInfo : public LinuxTargetInfo<X86_32TargetInfo> {
> +public:
> +  AndroidX86_32TargetInfo(const llvm::Triple &Triple)
> +      : LinuxTargetInfo<X86_32TargetInfo>(Triple) {
> +    SuitableAlign = 32;
> +    LongDoubleWidth = 64;
> +    LongDoubleFormat = &llvm::APFloat::IEEEdouble;
> +  }
> +};
> +} // end anonymous namespace
> +
> +namespace {
> +// x86_64 Android target
> +class AndroidX86_64TargetInfo : public LinuxTargetInfo<X86_64TargetInfo> {
> +public:
> +  AndroidX86_64TargetInfo(const llvm::Triple &Triple)
> +      : LinuxTargetInfo<X86_64TargetInfo>(Triple) {
> +    LongDoubleFormat = &llvm::APFloat::IEEEquad;
> +  }
> +};
> +} // end anonymous namespace
> +
>
>  //===----------------------------------------------------------------------===//
>  // Driver code
> @@ -6862,8 +6886,14 @@
>        return new DarwinI386TargetInfo(Triple);
>
>      switch (os) {
> -    case llvm::Triple::Linux:
> -      return new LinuxTargetInfo<X86_32TargetInfo>(Triple);
> +    case llvm::Triple::Linux: {
> +      switch (Triple.getEnvironment()) {
> +      default:
> +        return new LinuxTargetInfo<X86_32TargetInfo>(Triple);
> +      case llvm::Triple::Android:
> +        return new AndroidX86_32TargetInfo(Triple);
> +      }
> +    }
>      case llvm::Triple::DragonFly:
>        return new DragonFlyBSDTargetInfo<X86_32TargetInfo>(Triple);
>      case llvm::Triple::NetBSD:
> @@ -6910,8 +6940,14 @@
>      switch (os) {
>      case llvm::Triple::CloudABI:
>        return new CloudABITargetInfo<X86_64TargetInfo>(Triple);
> -    case llvm::Triple::Linux:
> -      return new LinuxTargetInfo<X86_64TargetInfo>(Triple);
> +    case llvm::Triple::Linux: {
> +      switch (Triple.getEnvironment()) {
> +      default:
> +        return new LinuxTargetInfo<X86_64TargetInfo>(Triple);
> +      case llvm::Triple::Android:
> +        return new AndroidX86_64TargetInfo(Triple);
> +      }
> +    }
>      case llvm::Triple::DragonFly:
>        return new DragonFlyBSDTargetInfo<X86_64TargetInfo>(Triple);
>      case llvm::Triple::NetBSD:
>
> EMAIL PREFERENCES
>   http://reviews.llvm.org/settings/panel/emailpreferences/



More information about the cfe-commits mailing list