< prev index next >

src/hotspot/cpu/aarch64/aarch64-asmtest.py

Print this page
rev 60623 : 8248500: AArch64: Remove the r18 dependency on Windows AArch64
Reviewed-by:
Contributed-by: mbeckwit, luhenry, burban
rev 60624 : 8248500: AArch64: Remove the r18 dependency on Windows AArch64 (regenerate tests)
Reviewed-by:
Contributed-by: mbeckwit, luhenry, burban
   1 import random
   2 
   3 AARCH64_AS = "as"
   4 AARCH64_OBJDUMP = "objdump"
   5 AARCH64_OBJCOPY = "objcopy"
   6 




   7 class Operand(object):
   8 
   9      def generate(self):
  10         return self
  11 
  12 class Register(Operand):
  13 
  14     def generate(self):
  15         self.number = random.randint(0, 30)
  16         return self
  17 
  18     def astr(self, prefix):
  19         return prefix + str(self.number)
  20 
  21 class FloatRegister(Register):
  22 
  23     def __str__(self):
  24         return self.astr("v")
  25 
  26     def nextReg(self):
  27         next = FloatRegister()
  28         next.number = (self.number + 1) % 32
  29         return next
  30 
  31 class GeneralRegister(Register):
  32 
  33     def __str__(self):
  34         return self.astr("r")
  35 
  36 class GeneralRegisterOrZr(Register):
  37 
  38     def generate(self):
  39         self.number = random.randint(0, 31)
  40         return self
  41 
  42     def astr(self, prefix = ""):
  43         if (self.number == 31):
  44             return prefix + "zr"
  45         else:
  46             return prefix + str(self.number)
  47 
  48     def __str__(self):
  49         if (self.number == 31):
  50             return self.astr()
  51         else:
  52             return self.astr("r")
  53 
  54 class GeneralRegisterOrSp(Register):
  55     def generate(self):
  56         self.number = random.randint(0, 31)
  57         return self
  58 
  59     def astr(self, prefix = ""):
  60         if (self.number == 31):
  61             return "sp"
  62         else:
  63             return prefix + str(self.number)
  64 
  65     def __str__(self):
  66         if (self.number == 31):
  67             return self.astr()
  68         else:
  69             return self.astr("r")
  70 
  71 class FloatZero(Operand):
  72 
  73     def __str__(self):
  74         return "0.0"
  75 
  76     def astr(self, ignored):


   1 import random
   2 
   3 AARCH64_AS = "as"
   4 AARCH64_OBJDUMP = "objdump"
   5 AARCH64_OBJCOPY = "objcopy"
   6 
   7 # r18 is used for TLS on Windows ABI.
   8 REGS30 = [reg for reg in range(0,30) if reg != 18]
   9 REGS31 = REGS30 + [31]
  10 
  11 class Operand(object):
  12 
  13      def generate(self):
  14         return self
  15 
  16 class Register(Operand):
  17 
  18     def generate(self):
  19         self.number = random.choice(REGS30)
  20         return self
  21 
  22     def astr(self, prefix):
  23         return prefix + str(self.number)
  24 
  25 class FloatRegister(Register):
  26 
  27     def __str__(self):
  28         return self.astr("v")
  29 
  30     def nextReg(self):
  31         next = FloatRegister()
  32         next.number = (self.number + 1) % 32
  33         return next
  34 
  35 class GeneralRegister(Register):
  36 
  37     def __str__(self):
  38         return self.astr("r")
  39 
  40 class GeneralRegisterOrZr(Register):
  41 
  42     def generate(self):
  43         self.number = random.choice(REGS31)
  44         return self
  45 
  46     def astr(self, prefix = ""):
  47         if (self.number == 31):
  48             return prefix + "zr"
  49         else:
  50             return prefix + str(self.number)
  51 
  52     def __str__(self):
  53         if (self.number == 31):
  54             return self.astr()
  55         else:
  56             return self.astr("r")
  57 
  58 class GeneralRegisterOrSp(Register):
  59     def generate(self):
  60         self.number = random.choice(REGS31)
  61         return self
  62 
  63     def astr(self, prefix = ""):
  64         if (self.number == 31):
  65             return "sp"
  66         else:
  67             return prefix + str(self.number)
  68 
  69     def __str__(self):
  70         if (self.number == 31):
  71             return self.astr()
  72         else:
  73             return self.astr("r")
  74 
  75 class FloatZero(Operand):
  76 
  77     def __str__(self):
  78         return "0.0"
  79 
  80     def astr(self, ignored):


< prev index next >