< prev index next >

test/jdk/java/foreign/callarranger/TestAarch64CallArranger.java

Print this page
*** 155,12 ***
                      bufferLoad(8, long.class), vmStore(r1, long.class),
              }},
              // struct s { int32_t a, b; double c; int32_t d };
              { struct2, new Binding[] {
                  copy(struct2),
!                 baseAddress(),
-                 unboxAddress(),
                  vmStore(r0, long.class)
              }},
              // struct s { int32_t a[2]; float b[2] };
              { MemoryLayout.structLayout(C_INT, C_INT, C_FLOAT, C_FLOAT), new Binding[] {
                  dup(),
--- 155,11 ---
                      bufferLoad(8, long.class), vmStore(r1, long.class),
              }},
              // struct s { int32_t a, b; double c; int32_t d };
              { struct2, new Binding[] {
                  copy(struct2),
!                 unboxAddress(MemorySegment.class),
                  vmStore(r0, long.class)
              }},
              // struct s { int32_t a[2]; float b[2] };
              { MemoryLayout.structLayout(C_INT, C_INT, C_FLOAT, C_FLOAT), new Binding[] {
                  dup(),

*** 196,18 ***
          assertEquals(callingSequence.functionDesc(), fd);
  
          checkArgumentBindings(callingSequence, new Binding[][]{
              {
                  copy(struct1),
!                 baseAddress(),
-                 unboxAddress(),
                  vmStore(r0, long.class)
              },
              {
                  copy(struct2),
!                 baseAddress(),
-                 unboxAddress(),
                  vmStore(r1, long.class)
              },
              { vmStore(r2, int.class) }
          });
  
--- 195,16 ---
          assertEquals(callingSequence.functionDesc(), fd);
  
          checkArgumentBindings(callingSequence, new Binding[][]{
              {
                  copy(struct1),
!                 unboxAddress(MemorySegment.class),
                  vmStore(r0, long.class)
              },
              {
                  copy(struct2),
!                 unboxAddress(MemorySegment.class),
                  vmStore(r1, long.class)
              },
              { vmStore(r2, int.class) }
          });
  

*** 364,19 ***
          CallingSequence callingSequence = bindings.callingSequence;
          assertEquals(callingSequence.methodType(), mt);
          assertEquals(callingSequence.functionDesc(), fd);
  
          checkArgumentBindings(callingSequence, new Binding[][]{
!             { copy(struct), baseAddress(), unboxAddress(), vmStore(r0, long.class) },
!             { copy(struct), baseAddress(), unboxAddress(), vmStore(r1, long.class) },
              { vmStore(r2, int.class) },
              { vmStore(r3, int.class) },
              { vmStore(r4, int.class) },
              { vmStore(r5, int.class) },
              { vmStore(r6, int.class) },
              { vmStore(r7, int.class) },
!             { copy(struct), baseAddress(), unboxAddress(), vmStore(stackStorage(0), long.class) },
              { vmStore(stackStorage(1), int.class) },
          });
  
          checkReturnBindings(callingSequence, new Binding[]{});
      }
--- 361,19 ---
          CallingSequence callingSequence = bindings.callingSequence;
          assertEquals(callingSequence.methodType(), mt);
          assertEquals(callingSequence.functionDesc(), fd);
  
          checkArgumentBindings(callingSequence, new Binding[][]{
!             { copy(struct), unboxAddress(MemorySegment.class), vmStore(r0, long.class) },
!             { copy(struct), unboxAddress(MemorySegment.class), vmStore(r1, long.class) },
              { vmStore(r2, int.class) },
              { vmStore(r3, int.class) },
              { vmStore(r4, int.class) },
              { vmStore(r5, int.class) },
              { vmStore(r6, int.class) },
              { vmStore(r7, int.class) },
!             { copy(struct), unboxAddress(MemorySegment.class), vmStore(stackStorage(0), long.class) },
              { vmStore(stackStorage(1), int.class) },
          });
  
          checkReturnBindings(callingSequence, new Binding[]{});
      }
< prev index next >