summaryrefslogtreecommitdiffstats
path: root/crypto/perlasm/x86_64-support.pl
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/perlasm/x86_64-support.pl')
-rw-r--r--crypto/perlasm/x86_64-support.pl51
1 files changed, 51 insertions, 0 deletions
diff --git a/crypto/perlasm/x86_64-support.pl b/crypto/perlasm/x86_64-support.pl
new file mode 100644
index 0000000000..66aeaedab4
--- /dev/null
+++ b/crypto/perlasm/x86_64-support.pl
@@ -0,0 +1,51 @@
+#! /usr/bin/env perl
+# Copyright 2020 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+package x86_64support;
+
+# require "x86_64-support.pl";
+# $ptr_size=&pointer_size($flavour);
+# $ptr_reg=&pointer_register($flavour,$reg);
+
+sub ::pointer_size
+{
+ my($flavour)=@_;
+ my $ptr_size=8; $ptr_size=4 if ($flavour eq "elf32");
+ return $ptr_size;
+}
+
+sub ::pointer_register
+{
+ my($flavour,$reg)=@_;
+ if ($flavour eq "elf32") {
+ if ($reg eq "%rax") {
+ return "%eax";
+ } elsif ($reg eq "%rbx") {
+ return "%ebx";
+ } elsif ($reg eq "%rcx") {
+ return "%ecx";
+ } elsif ($reg eq "%rdx") {
+ return "%edx";
+ } elsif ($reg eq "%rdi") {
+ return "%edi";
+ } elsif ($reg eq "%rsi") {
+ return "%esi";
+ } elsif ($reg eq "%rbp") {
+ return "%ebp";
+ } elsif ($reg eq "%rsp") {
+ return "%esp";
+ } else {
+ return $reg."d";
+ }
+ } else {
+ return $reg;
+ }
+}
+
+1;