blob: 3ad73fb12f7bb0018eb5254065f8e54f8f74c6b0 [file] [log] [blame]
/* APPLE LOCAL file CW asm blocks */
/* Test asm-syntax blocks within functions. */
/* { dg-do run { target powerpc*-*-* } } */
/* { dg-options "-fasm-blocks" } */
void abort(void);
int
foo (int argx, int argy)
{
register int locx = argx, locy = argy, rslt;
asm {
add rslt,locx,locy
}
return rslt;
}
/* Exercise corners of syntax. */
int
bar ()
{
register int rslt = 100;
asm {
// Combos of instructions on a line
nop
;
nop
nop ;
; nop
nop ; nop
; nop ;;; li r3,95 ; nop ;
// '.' in an opcode
add. r6,r6,r5
}
return rslt;
}
int baz ()
{
register int rslt = 1;
asm {
li r8,29+(2 * 3);
add rslt,rslt,r8;
b @192
@34
nop
ble+ @34
b forward
abc:
b abc
@abc:
b @abc
forward: ; @192:
nop
;
sameline: nop
x1: @x2 @x3: nop ; @x4 x5:
}
return rslt;
}
int
main ()
{
if (foo (22, 23) != 45)
abort ();
if (bar () != 100)
abort ();
if (baz () != 36)
abort ();
return 0;
}